Última entrevista em PHP para 2020, 100 perguntas (artigos extras)

1 、 Erro de análise: erro de sintaxe, T_STRING inesperado em /website/index.php na linha 18

Erro de sintaxe na linha 18, verifique a sintaxe

2 、 Aviso: fopen (welcome.txt) [function.fopen]: falha ao abrir o stream: Não existe esse arquivo ou diretório em /website/index.php na linha 2

O arquivo welcome.txt não foi encontrado, verifique se o arquivo existe

Clique para entrar no meu grupo de pinguins

3. Use PHP para imprimir a hora do dia anterior, o formato de impressão é 22:21:21, 10 de maio de 2007

Echo date(‘Y-m-d H:i:s’,strtotime(-1 day’));

4. O JavaScript pode definir um array bidimensional, se não, como você pode resolvê-lo?

JavaScript não oferece suporte à definição de array bidimensional, você pode usar arr [0] = new array () para resolver

5. Supondo que a.html e b.html estejam na mesma pasta, use javascript para pular automaticamente para b.html após abrir a.html por cinco segundos.

<script>
function go2b(){
    
    
 window.location = “b.html”;
 window.close();
}
setTimeout(go2b(),5000 ); //5秒钟后自动执行go2b()
</script>

//正在浏览当前页面用户的 IP 地址:127.0.0.1
echo $_SERVER["REMOTE_ADDR"].<br />;
//查询(query)的字符串(URL 中第一个问号 ? 之后的内容):id=1&bi=2
echo $_SERVER["QUERY_STRING"].<br />;
//当前运行脚本所在的文档根目录:d:inetpubwwwroot
echo $_SERVER["DOCUMENT_ROOT"].<br />;

6. Em HTTP 1.0, o significado do código de status 401 não é autorizado____; se o prompt "Arquivo não encontrado" for retornado, a função de cabeçalho pode ser usada e a frase é cabeçalho ("HTTP / 1.0 404 Não encontrado");

401 significa não autorizado; cabeçalho ("HTTP / 1.0 404 não encontrado");

7. Adicionar John à matriz de usuários?

$users[] = ‘john’; array_push($users,‘john’);

8. Qual é a função de error_reporting no PHP?

error_reporting () define o nível de relatório de erros do PHP e retorna o nível atual.

9. Como modificar o tempo de sobrevivência da SESSÃO (1 ponto).

Método 1: Defina session.gc_maxlifetime em php.ini para 9999 e reinicie o apache

方法 2: $ savePath = “./session_save_dir/”;

$ lifeTime = horas * segundos;

session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();

Método 3:

setcookie() and session_set_cookie_params($lifeTime);

10. Há um endereço de página da web, como a página inicial da PHP Development Resource Network: http://www.phpres.com/index.html, como obter seu conteúdo? ($ 1 ponto)

Método 1 (para PHP5 e superior):

$readcontents = fopen(“http://www.phpres.com/index.html”, “rb”);
$contents = stream_get_contents($readcontents);
fclose($readcontents);
echo $contents;

Método 2:

echo file_get_contents(“http://www.phpres.com/index.html”);

11. Escreva uma função que seja o mais eficiente possível para extrair a extensão do arquivo de um URL padrão

Por exemplo: http://www.sina.com.cn/abc/de/fg.php?id=1 precisa tirar php ou .php

Resposta 1:

function getExt($url){
    
    
$arr = parse_url($url);
$file = basename($arr['path']);
$ext = explode(.,$file);
return $ext[1];
}

Resposta 2:

function getExt($url) {
    
    
$url = basename($url);
$pos1 = strpos($url,.);
$pos2 = strpos($url,?);
if(strstr($url,?)){
    
    
Return substr($url,$pos1 + 1,$pos2$pos11);
} else {
    
    
return substr($url,$pos1);
}
}

12. Use mais de cinco maneiras de obter a extensão de um arquivo

Requisitos: dir / upload.image.jpg, descubra .jpg ou jpg,

Você deve usar a própria função de processamento do PHP para o processamento. O método não pode ser repetido obviamente. Ele pode ser encapsulado nas funções get_ext1 ( nome do arquivo), getext 2 (file_name), get_ext2 (f i l ena m e ) ,g e tex t 2 ( file_name)

function get_ext1($file_name){
    
    
return strrchr($file_name,.);
}
function get_ext2($file_name){
    
    
return substr($file_name,strrpos($file_name,.));
}
function get_ext3($file_name){
    
    
return array_pop(explode(., $file_name));
}
function get_ext4($file_name){
    
    
$p = pathinfo($file_name);
return $p['extension'];
}
function get_ext5($file_name){
    
    
return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name),.)));
}

13 、

$str1 = null;
$str2 = false;
echo $str1==$str2 ? ‘相等’ : ‘不相等’;
$str3 =;
$str4 = 0;
echo $str3==$str4 ? ‘相等’ : ‘不相等’;
$str5 = 0;
$str6 =0;
echo $str5===$str6 ? ‘相等’ : ‘不相等’;
?>

Resposta: Igual, não igual

14. Qual é a principal diferença entre os tipos de campo varchar e char no banco de dados MySQL? A eficiência de busca nesse tipo de campo é maior, por quê?

Varchar tem comprimento variável, economizando espaço de armazenamento, char tem comprimento fixo. A eficiência de pesquisa é mais rápida do que o tipo varchar, porque varchar é um comprimento não fixo e o comprimento deve ser pesquisado primeiro e, em seguida, os dados são extraídos. Ele tem uma etapa a mais do que o tipo char de comprimento fixo, então a eficiência é menor

15. Use JavaScript para escrever três métodos para gerar uma tag de imagem (dica: considere da perspectiva do método, objeto e HTML)

(1) var img = nova imagem ();

(2) var img = document.createElement (“imagem”)

(3) img.innerHTML = “”

16. Descreva as duas diferenças mais significativas entre XHTML e HTML

(1) XHTML deve ser obrigatório para especificar o tipo de documento DocType, HTML não precisa

(2) Todas as tags em XHTML devem ser fechadas, HTML é mais arbitrário

17. Escreva os nomes de mais de três mecanismos de armazenamento de banco de dados MySQL (dica: não diferencia maiúsculas de minúsculas)

Mais de uma dúzia de mecanismos incluindo MyISAM, InnoDB, BDB (Berkeley DB), Merge, Memory (Heap), Example, Federated, Archive, CSV, Blackhole, MaxDB, etc.

18. Encontre a diferença entre duas datas, como a diferença de data entre 2007-2-5 e 2007-3-6

método um:

<?php
class Dtime{
    
    
 function get_days($date1, $date2){
    
    
  $time1 = strtotime($date1);
  $time2 = strtotime($date2);
  return ($time2-$time1)/86400;
 }
}
$Dtime = new Dtime;
echo $Dtime->get_days(2007-2-5,2007-3-6);
?>

Método dois:

<?php
$temp = explode(-,2007-2-5);
$time1 = mktime(0, 0, 0, $temp[1], $temp[2], $temp[0]);
$temp = explode(-,2007-3-6);
$time2 = mktime(0, 0, 0, $temp[1], $temp[2], $temp[0]);
echo ($time2-$time1)/86400;

Método três: echo abs (strtotime ("2007-2-1") - strtotime ("2007-3-1")) / 60/60/24 calcular a diferença de tempo

19 / Escreva uma função para realizar as seguintes funções:

A string "open_door" é convertida em "OpenDoor" e "make_by_id" é convertida em "MakeById".

método:

function str_explode($str){
    
    
$str_arr=explode(“_”,$str);$str_implode=implode(” “,$str_arr); $str_implode=implode
(“”,explode(” “,ucwords($str_implode)));
return $str_implode;
}
$strexplode=str_explode(“make_by_id”);print_r($strexplode);

Método dois:

$str=”make_by_id!;
$expStr=explode(“_”,$str);
for($i=0;$i
echo ucwords($expStr[$i]);
}

方法 三 : echo str_replace ('', ”, ucwords (str_replace ('_', '', 'open_door')));

20. Existem vários registros de Id em uma tabela, descubra todos os registros desse id e exiba o número total de registros e use instruções SQL, visualizações e procedimentos armazenados para implementar separadamente.

DELIMITER //
create procedure proc_countNum(in columnId int,out rowsNo int)
begin
select count(*) into rowsNo from member where member_id=columnId;
end
call proc_countNum(1,@no);
select @no;

Método: Ver:

create view v_countNum as select member_id,count(*) as countNum from member group by
member_id
select countNum from v_countNum where member_id=1

O código para avançar e retroceder páginas da web em js

前进: history.forward (); = history.go (1);

后退: history.back (); = history.go (-1);

echo count ("abc"); O que é a saída?

Resposta 1

contagem - conta o número de elementos em uma matriz ou o número de atributos em um objeto

int count (mixed $ var [, int $ mode]), se var não for um tipo de array ou um objeto que implementa a interface Countable, 1 será retornado, com uma exceção, se var for NULL, o resultado será 0.

Para objetos, se o SPL estiver instalado, count () pode ser chamado implementando a interface Countable. Essa interface possui apenas um método, count (), que retorna o valor de retorno da função count ().

21. Há uma matriz unidimensional que armazena dados de plástico. Escreva uma função para organizá-los em ordem decrescente. É necessária alta eficiência de execução. E explique como melhorar a eficiência de execução. (Esta função deve ser implementada por você, a função php não pode ser usada)

function BubbleSort(&$arr){
    
    
 $cnt=count($arr);
 $flag=1;
 for($i=0;$i<$cnt;$i++){
    
    
 if($flag==0){
    
    
  return;
 }
 $flag=0;
 for($j=0;$j<$cnt-$i-1;$j++){
    
    
  if($arr[$j]>$arr[$j+1]){
    
    
   $tmp=$arr[$j];
   $arr[$j]=$arr[$j+1];
   $arr[$j+1]=$tmp;
   $flag=1;
  }
 }
 }
}
$test=array(1,3,6,8,2,7);
BubbleSort($test);
var_dump($test);

22. Dê um exemplo de qual método usar para acelerar o carregamento da página durante o processo de desenvolvimento

Abra os recursos do servidor apenas quando eles forem usados, feche os recursos do servidor a tempo, adicione índices ao banco de dados, as páginas podem gerar estáticos, imagens e outros arquivos grandes em um servidor separado. Use ferramentas de otimização de código.

23. O que o código a seguir produzirá? porque?

$num =10;
function multiply(){
    
    
$num =$num *10;
}
multiply();
echo $num;

Como a função multiply () não especifica $ num como uma variável global (como global $ num ou $ _GLOBALS ['num']), o valor de $ num é 10.

24. A diferença entre GET, POST e HEAD no protocolo HTTP?

HEAD: Solicite apenas o cabeçalho da página.

OBTER: Solicita as informações da página especificada e retorna o corpo da entidade.

POST: Solicita que o servidor aceite o documento especificado como uma nova entidade subordinada ao URI identificado.

(1) HTTP define diferentes métodos de interação com o servidor, os métodos mais básicos são GET e POST. Na verdade, GET é adequado para a maioria das solicitações e o POST reservado é usado apenas para atualizar o site.

(2) Quando o FORM é enviado, se o Método não for especificado, o padrão é uma solicitação GET. Os dados enviados no Formulário serão anexados à url, separados da url por?. Os caracteres alfanuméricos são enviados como estão, mas os espaços são convertidos em sinais "+" e outros símbolos são convertidos em% XX, onde XX é o valor ASCII (ou ISO Latin-1) do símbolo em hexadecimal. Os dados enviados pela solicitação GET são colocados no cabeçalho do protocolo de solicitação HTTP, enquanto os dados enviados pelo POST são colocados nos dados da entidade;

Os dados enviados por GET só podem ter no máximo 1024 bytes, enquanto o POST não tem essa limitação.

(3) OBTER Este é o método mais comumente usado para os navegadores solicitarem o servidor. O método POST também é usado para transmitir dados, mas ao contrário de GET, ao usar POST, os dados não são passados ​​após o URI, mas como uma linha separada a ser passada, e um Content_length deve ser enviado neste momento. O cabeçalho indica o comprimento dos dados, seguido por uma linha em branco e, a seguir, os dados reais transmitidos. Formulários em páginas da web geralmente são enviados usando POST.

Preste atenção, não se perca

Tudo bem, pessoal, o acima é todo o conteúdo deste artigo. As pessoas que podem ver aqui são todos talentos . Como eu disse antes, há muitos pontos técnicos em PHP, porque são muitos, é realmente impossível escrever, e você não vai ler muito depois de escrever, então irei organizá-los em PDF e documentos aqui, se necessário lata

Clique para inserir o código secreto: PHP + 「Plataforma」

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui


Para obter mais conteúdo de aprendizado, você pode visitar o Catálogo [Comparative Standard Factory] de Tutoriais de Excelente PHP Architect, contanto que você possa lê-lo para garantir que o salário suba um nível (atualização contínua)

O conteúdo acima espera ajudar a todos . Muitos PHPers sempre encontram alguns problemas e gargalos quando são avançados. Não há nenhum senso de direção ao escrever muito código comercial. Não sei por onde começar a melhorar. Compilei algumas informações sobre isso, incluindo Mas não se limitando a: arquitetura distribuída, alta escalabilidade, alto desempenho, alta simultaneidade, ajuste de desempenho do servidor, TP6, laravel, YII2, Redis, Swoole, Swoft, Kafka, otimização Mysql, scripts de shell, Docker, microsserviços, Nginx etc. Muitos pontos de conhecimento, produtos secos avançados avançados, podem ser compartilhados com todos gratuitamente, e aqueles que precisam podem se juntar ao meu grupo de intercâmbio de tecnologia PHP

Acho que você gosta

Origin blog.csdn.net/weixin_49163826/article/details/108968606
Recomendado
Clasificación