php_strip_whitespace()
Aprenda a usar a função PHP php_strip_whitespace(), que remove comentários e espaços em branco desnecessários de arquivos PHP.
A função PHP php_strip_whitespace() lê um arquivo fonte PHP e retorna seu conteúdo com todos os comentários e espaços em branco desnecessários removidos — exatamente a saída que você obteria executando o arquivo com php -w na linha de comando. Esta página aborda a sintaxe, o que a função remove (e o que não remove), um exemplo completo executável, trade-offs de desempenho e como ela se compara com as funções de remoção de espaços que as pessoas costumam confundir com ela.
Sintaxe
php_strip_whitespace(string $filename): string| Parte | Significado |
|---|---|
$filename | Caminho para o arquivo PHP a ser lido e processado. |
| Valor de retorno | Uma string contendo o código-fonte do arquivo com comentários e espaços em branco redundantes removidos. Retorna uma string vazia em caso de falha (por exemplo, se o arquivo não existir). |
A função não executa o arquivo — ela apenas tokeniza o seu código-fonte. Ela também não modifica o arquivo original em disco; retorna o código-fonte processado como uma nova string, deixando você decidir o que fazer com ele.
O que é removido
php_strip_whitespace() usa o próprio tokenizador do PHP, portanto remove com plena consciência da sintaxe PHP — nunca quebra seu código ao remover espaços em branco que sejam relevantes. Especificamente, ela remove:
- Todos os estilos de comentário:
// linha,# linhae/* bloco */(incluindo/** docblocks */). - Espaços em branco redundantes entre tokens, condensando sequências de espaços, tabulações e quebras de linha.
A função tem o cuidado de preservar espaços em branco dentro de literais de string e qualquer conteúdo fora das tags <?php … ?> (HTML puro), pois removê-los alteraria a saída do programa.
Como usar php_strip_whitespace()
Passe o caminho do arquivo que deseja processar. O exemplo abaixo cria um arquivo pequeno e depois o processa para que você possa ver a diferença:
<?php
// Create a sample file with comments and generous spacing.
$source = <<<'PHP'
<?php
// Greet the visitor.
function greet(string $name): string
{
/* Build the message */
return "Hello, $name!"; // spaces inside the string are kept
}
echo greet("World");
PHP;
file_put_contents('sample.php', $source);
// Strip comments and whitespace.
$stripped = php_strip_whitespace('sample.php');
echo $stripped;Os comentários e linhas em branco extras são removidos, enquanto o espaçamento dentro da string "Hello, $name!" é mantido intacto, pois alterá-lo mudaria o comportamento do programa.
Se o arquivo não puder ser lido, a função retorna uma string vazia em vez de lançar um erro fatal:
<?php
$result = php_strip_whitespace('does-not-exist.php');
var_dump($result === ''); // bool(true)Quando usar
- Publicando uma versão de produção. Remover comentários e espaços em branco reduz o tamanho dos arquivos fonte e diminui ligeiramente o tempo de análise em carregamentos a frio (com um cache de opcode como o OPcache habilitado, esse ganho é absorvido em grande parte após a primeira requisição).
- Ofuscando código distribuído. Remover comentários e docblocks torna o código-fonte enviado menos autodocumentado — uma forma leve, não segura, de ofuscação.
- Inspecionando a saída tokenizada. É uma maneira rápida de visualizar o código-fonte de um arquivo sem seus comentários.
Considerações de desempenho
Use php_strip_whitespace() apenas em cópias de produção dos seus arquivos, nunca no código-fonte em desenvolvimento. Durante o desenvolvimento, comentários e espaços em branco tornam o código legível, depurável e manutenível; removê-los no local seria um desperdício. A abordagem padrão é manter o código-fonte comentado sob controle de versão e gerar cópias processadas como parte de uma etapa de build/deploy.
Observe que com o OPcache (incluído e habilitado por padrão no PHP moderno), o bytecode compilado é armazenado em cache após a primeira requisição, portanto a economia de tempo de análise obtida com a remoção de espaços em branco é marginal. A redução de tamanho é o benefício mais confiável.
php_strip_whitespace() vs. trim()
Essas funções não são relacionadas, apesar dos nomes semelhantes — uma fonte comum de confusão:
| Função | Opera sobre | Remove |
|---|---|---|
php_strip_whitespace() | um arquivo fonte PHP | comentários + espaços em branco redundantes do código-fonte |
trim() | um valor string | espaços em branco do início e do fim de uma string |
ltrim() / rtrim() | um valor string | espaços em branco de apenas uma extremidade |
Se seu objetivo é limpar uma string (como entrada de formulário), use trim(), não php_strip_whitespace().
Funções relacionadas
file_get_contents()— lê o conteúdo bruto de um arquivo sem remover nada.readfile()— lê um arquivo e o escreve diretamente no buffer de saída.highlight_string()— o objetivo oposto: renderiza o código-fonte PHP com realce de sintaxe.- Comentários PHP — as sintaxes de comentário que esta função remove.
Conclusão
php_strip_whitespace() retorna uma cópia de um arquivo fonte PHP sem comentários e sem espaços em branco desnecessários, executando-o através do tokenizador do PHP, reduzindo o tamanho dos arquivos com segurança sem quebrar código válido. Reserve-a para builds de produção, lembre-se de que ela opera sobre arquivos (não strings) e não a confunda com trim().