W3docs

PHP Misc

Conheça as funções diversas do PHP usadas para inspecionar o ambiente, gerar IDs únicos e controlar o tempo de execução.

As funções diversas do PHP são um conjunto de funções integradas que não pertencem a uma categoria específica como strings ou arrays. Elas permitem que o seu script examine o próprio ambiente: qual versão do PHP está em execução, em qual sistema operacional ele está, qual usuário é o dono do processo, por quanto tempo é permitido rodar, entre outras informações. Você as utiliza quando precisa inspecionar o runtime, depurar uma configuração, gerar um token único ou controlar o tempo de execução.

Esta página agrupa as funções mais úteis conforme sua finalidade prática, com exemplos executáveis para cada grupo.

Inspecionando a instalação do PHP

Quando algo se comporta de forma diferente entre dois servidores, a primeira pergunta costuma ser "qual versão e configuração estou usando?" Essas funções respondem a isso.

  • phpinfo() — imprime um relatório HTML completo do build do PHP, extensões carregadas e configurações do php.ini. Execute uma vez em um servidor novo e depois delete o arquivo (ele expõe muito sobre o seu ambiente).
  • phpversion() — retorna apenas a string de versão, por exemplo "8.2.10".
  • php_uname() — retorna informações sobre o sistema operacional em que o PHP está rodando.
  • get_defined_constants() — retorna um array com todas as constantes definidas (as integradas e as suas próprias).
<?php
echo phpversion(), "\n";          // 8.2.10
echo php_uname('s'), "\n";        // e.g. "Linux"  ('s' = OS name only)

// Did the developer remember to define this config constant?
defined('APP_ENV') or define('APP_ENV', 'production');
$constants = get_defined_constants(true);   // grouped by category
echo APP_ENV, "\n";               // production
?>

phpinfo() só faz sentido quando a saída vai para um navegador, por isso não está no exemplo executável acima.

Comparando versões

Nunca compare strings de versão com < ou =="8.10" é menor que "8.9" como uma string simples. Use version_compare(), que entende a semântica de versões.

<?php
// Is the running PHP new enough for a feature?
if (version_compare(PHP_VERSION, '8.0.0', '>=')) {
    echo "Named arguments are available.\n";
}

// Two-argument form returns -1, 0, or 1
echo version_compare('1.9.0', '1.10.0'), "\n";   // -1  (1.9 is older)
?>

Gerando IDs únicos

uniqid() cria um identificador baseado no tempo atual em microssegundos. É útil para nomes de arquivos temporários e chaves de cache-busting, mas não é criptograficamente seguro — para tokens, senhas ou qualquer coisa sensível à segurança, use random_bytes() ou bin2hex(random_bytes(16)).

<?php
echo uniqid(), "\n";              // e.g. 651f3a9c4b2d8
echo uniqid('user_', true), "\n"; // prefix + more entropy: user_651f3a9c4b2d81.23456789
?>

Controlando tempo de execução e limites

Scripts de longa duração (importações, geradores de relatórios) às vezes precisam pausar ou rodar por mais tempo do que o limite padrão.

  • sleep($seconds) — pausa o script por segundos inteiros.
  • usleep($microseconds) — pausa por microssegundos (1 segundo = 1.000.000 µs).
  • set_time_limit($seconds) — redefine o tempo máximo de execução; 0 significa sem limite (ignorado quando max_execution_time não pode ser alterado, por exemplo no modo seguro).
  • ignore_user_abort(true) — continua executando mesmo que o cliente se desconecte; útil para finalizar uma tarefa em segundo plano.
<?php
$start = time();
sleep(1);                 // pause 1 second
usleep(500000);           // pause another half second
echo "Paused for about ", time() - $start, "s\n";   // Paused for about 1s

set_time_limit(30);       // allow up to 30 seconds for the rest of the script
?>

Lendo informações de processo e ambiente

Essas funções reportam sobre o processo do sistema operacional em que o PHP está sendo executado.

  • getmypid() — o ID do processo do script em execução.
  • get_current_user() — o proprietário do arquivo do script em execução.
  • getmyuid() / getmygid() — o ID de usuário e o ID de grupo do proprietário do script (em sistemas que os suportam).
<?php
echo "PID: ", getmypid(), "\n";        // e.g. PID: 4821
echo "User: ", get_current_user(), "\n";
?>

Trabalhando com código-fonte

Algumas funções lidam com o código-fonte PHP como texto — principalmente para páginas de documentação e visualizadores de código.

  • highlight_file($filename) — exibe o código-fonte de um arquivo com realce de sintaxe HTML.
  • highlight_string($code) — o mesmo, mas para uma string de código PHP.
  • php_strip_whitespace($filename) — retorna o código-fonte de um arquivo com comentários e espaços em branco extras removidos.
  • get_browser() — retorna detalhes sobre o navegador do visitante, mas somente quando o arquivo de configuração browscap.ini estiver configurado; caso contrário, retorna false.
<?php
$code = "<?php echo 'Hello'; // a comment ?>";
// highlight_string can also return the markup instead of printing it
$html = highlight_string($code, true);
echo $html, "\n";   // a <code>...</code> block with colorized <span> tags
?>

Quando devo usar essas funções?

TarefaFunção
Proteger um recurso com base em uma versão mínima do PHPversion_compare()
Gerar um nome de arquivo único descartáveluniqid()
Pausar entre chamadas de API para respeitar um limite de taxasleep() / usleep()
Permitir que uma importação longa termine sem expirarset_time_limit(), ignore_user_abort()
Depurar a configuração PHP de um servidorphpinfo(), phpversion(), php_uname()

Para se aprofundar em tópicos relacionados, consulte Funções PHP, Constantes PHP, Data e Hora no PHP e Strings PHP.

Prática

Prática
What are the key things that you can find about PHP Miscellaneous from the given URL?
What are the key things that you can find about PHP Miscellaneous from the given URL?
Was this page helpful?