W3docs

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
ParteSignificado
$filenameCaminho para o arquivo PHP a ser lido e processado.
Valor de retornoUma 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, # linha e /* 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çãoOpera sobreRemove
php_strip_whitespace()um arquivo fonte PHPcomentários + espaços em branco redundantes do código-fonte
trim()um valor stringespaços em branco do início e do fim de uma string
ltrim() / rtrim()um valor stringespaç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().

Prática

Prática
Qual é a funcionalidade da função PHP 'trim()' quando utilizada em programas?
Qual é a funcionalidade da função PHP 'trim()' quando utilizada em programas?
Was this page helpful?