Removendo espaços em PHP: desempenho e armadilhas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Como remover todos os espaços de uma string em PHP: do iniciante ao avançado

\n\n

Imagine a situação: você recebe um número de telefone do usuário, e ele o digitou com vários espaços, tabulações e quebras de linha. Ou está analisando um arquivo CSV onde os valores estão cheios de espaços extras. Familiar? A pergunta "How do I strip all spaces out of a string in PHP?" no Stack Overflow acumulou dezenas de milhares de visualizações — e não é por acaso. Todo desenvolvedor PHP, mais cedo ou mais tarde, enfrenta a tarefa de limpar uma string de caracteres de espaço.

\n\n

Hoje, não vamos apenas dar a resposta. Vamos fazer uma verdadeira investigação: analisar todos os métodos populares, comparar seu desempenho e descobrir qual deles vale a pena usar em projetos reais. Preparem seus IDEs — vai ser interessante.

\n\n

Por que não usar trim()

\n\n

Vamos começar com um erro comum. Muitos iniciantes escrevem:

\n\n
$clean = trim($dirty);
\n\n

E acham que o problema está resolvido. Mas trim() remove espaços apenas do início e do final da string. Se houver espaços internos, eles permanecem. É como varrer apenas a entrada, deixando toda a sujeira no centro da sala.

\n\n

Para nossa tarefa, precisamos de ferramentas mais poderosas. Vamos analisar três abordagens principais para remover todos os espaços de uma string em PHP.

\n\n

Método 1: str_replace — o rei da simplicidade

\n\n

A maneira mais óbvia e frequentemente usada é a função str_replace(). Ela substitui todas as ocorrências de uma substring por uma string vazia. Simples como dois mais dois:

\n\n
<?php\n$string = "Olá, mundo! Como vai?";\n$no_spaces = str_replace(' ', '', $string);\necho $no_spaces; // "Olá,mundo!Comovai?"\n?>
\n\n

No entanto, há um detalhe aqui. str_replace() remove apenas espaços comuns (caractere de código 32). E quanto a tabulações, espaços inseparáveis ou quebras de linha? Para uma limpeza completa, você precisará passar um array:

\n\n
<?php\n$string = "Olá\\tmundo!\\nComo vai?";\n$remove = [' ', "\\t", "\\n", "\\r"];\n$no_spaces = str_replace($remove, '', $string);\necho $no_spaces; // "Olámundo!Comovai?"\n?>
\n\n

Vantagens: alta velocidade, legibilidade do código.
\nDesvantagens: é necessário listar explicitamente todos os tipos de espaços.

\n\n

E o str_ireplace?

\n\n

Alguns desenvolvedores confundem str_replace com str_ireplace. A segunda função faz o mesmo, mas sem diferenciar maiúsculas de minúsculas. Para espaços, não há diferença — um espaço não tem maiúsculas ou minúsculas. Então, use str_replace sem medo.

\n\n

Método 2: preg_replace — o poder das expressões regulares

\n\n

Quando você precisa remover todos os caracteres de espaço de uma vez, as expressões regulares vêm em socorro. A classe de caracteres \\s inclui espaço, tabulação, quebra de linha, retorno de carro e até tabulação vertical:

\n\n
<?php\n$string = "Olá\\tmundo!\\nComo vai?";\n$no_spaces = preg_replace('/\\s+/', '', $string);\necho $no_spaces; // "Olámundo!Comovai?"\n?>
\n\n

Observe o sinal de mais (+) após \\s. Ele significa "um ou mais caracteres de espaço". Se você escrever apenas /\\s/, cada caractere de espaço será substituído individualmente — isso também funciona, mas é um pouco mais lento.

\n\n

Vantagens: versatilidade, cobre todos os tipos de espaços.
\nDesvantagens: cerca de 2 a 3 vezes mais lento que str_replace em grandes volumes de dados.

\n\n

Quando escolher preg_replace

\n\n

Use este método se:

\n
    \n
  • Você não sabe exatamente quais caracteres de espaço podem aparecer
  • \n
  • Precisa remover todos os caracteres "invisíveis", incluindo os raros (como espaço inseparável Unicode)
  • \n
  • Está processando strings de fontes externas (API, parsing de HTML)
  • \n
\n\n

Método 3: strtr — a carta na manga

\n\n

Poucos sabem, mas o PHP tem a função strtr() (

Blogs

Book Recommendations