trim()
A função trim() no PHP remove espaços em branco ou outros caracteres predefinidos do início e do fim de uma string.
Introdução
A função trim() no PHP remove espaços em branco (ou outros caracteres que você especificar) de ambos o início e o fim de uma string. É uma das funções de string mais usadas, pois textos vindos de formulários, arquivos e requisições HTTP quase sempre chegam com espaços, tabulações ou quebras de linha extras ao redor deles.
Este capítulo aborda a sintaxe, os caracteres que o trim() remove por padrão, como remover um conjunto personalizado de caracteres, como o trim() difere do ltrim() e do rtrim(), e os erros mais comuns a evitar.
Sintaxe
trim(string $string, string $characters = " \n\r\t\v\x00"): string| Parâmetro | Descrição |
|---|---|
$string | A string de entrada a ser aparada. |
$characters | Opcional. O conjunto de caracteres a remover. Quando omitido, o conjunto padrão de espaços em branco é utilizado. |
A função retorna uma nova string aparada — ela não modifica a $string original (strings em PHP são passadas por valor).
Por padrão, o trim() remove estes caracteres de ambos os lados:
| Caractere | Significado |
|---|---|
" " | Um espaço comum |
"\t" | Uma tabulação |
"\n" | Uma quebra de linha (nova linha) |
"\r" | Um retorno de carro |
"\0" | O byte NUL |
"\x0B" (\v) | Uma tabulação vertical |
Exemplo básico
Remover os espaços iniciais e finais de uma string:
Os colchetes são impressos apenas para tornar o resultado visível — eles provam que os espaços em ambos os lados foram removidos, enquanto o espaço interno (Hello, world!) é preservado.
Removendo caracteres personalizados
O segundo argumento permite escolher exatamente quais caracteres remover. Isso é útil para limpar delimitadores, barras ou aspas:
<?php
echo trim("xxxHello worldxxx", "x"), "\n"; // Hello world
echo trim("/var/www/html/", "/"), "\n"; // var/www/html
echo trim("###Section###", "#"), "\n"; // SectionVocê pode passar vários caracteres de uma vez — o trim() remove qualquer um deles de cada extremidade até encontrar um caractere que não esteja no conjunto:
<?php
echo trim("**[Note]**", "*[]"); // NoteNote que apenas as extremidades são afetadas: os colchetes dentro da string ficam intactos, assim como o espaço interno no primeiro exemplo.
Intervalos de caracteres com ".."
Dentro do argumento $characters, você pode especificar um intervalo com dois pontos. Por exemplo, para remover caracteres de controle ASCII:
<?php
$dirty = "\x01\x02Hello\x03";
echo trim($dirty, "\x00..\x1F"); // Hellotrim() vs ltrim() vs rtrim()
O trim() atua em ambas as extremidades. Quando você quiser apenas um lado, use suas funções irmãs:
| Função | Remove de |
|---|---|
trim() | ambas as extremidades |
ltrim() | apenas à esquerda (início) |
rtrim() | apenas à direita (fim) |
<?php
$value = "...data...";
echo trim($value, "."), "\n"; // data
echo ltrim($value, "."), "\n"; // data...
echo rtrim($value, "."), "\n"; // ...dataCaso de uso comum: limpando entradas do usuário
O trim() é mais valioso ao validar entradas de formulário. Um usuário pode digitar um espaço no final do e-mail ou deixar o campo preenchido apenas com espaços. Aparar primeiro torna essas verificações confiáveis:
<?php
$username = " alice ";
$username = trim($username);
if ($username === "") {
echo "Username is required.";
} else {
echo "Welcome, " . $username . "!"; // Welcome, alice!
}Sem a chamada ao trim(), um valor " " (apenas espaços) passaria na verificação if (!empty($username)), mesmo sendo efetivamente vazio.
Armadilhas
- Retorna um valor; não muta.
trim($string);sozinho não faz nada útil — você deve atribuir o resultado:$string = trim($string);. - O conjunto personalizado é uma lista, não uma substring.
trim("Hello", "Helo")remove cada caractere inicial/final que apareça em"Helo", não a palavra literal — portanto pode consumir mais do que o esperado. - Caracteres multibyte. O
trim()opera em bytes, não em pontos de código Unicode. Para remover espaços em branco multibyte, use um conjunto personalizado ou uma expressão regular. - Atua apenas nas extremidades. Para remover caracteres em toda a string, use
str_replace()oupreg_replace().
Conclusão
A função trim() é a ferramenta ideal para limpar as bordas de uma string — espaços em branco por padrão, ou qualquer conjunto de caracteres que você fornecer. Combinada com suas funções irmãs unilaterais ltrim() e rtrim(), ela torna a validação de entrada e a normalização de strings simples e previsíveis.
Para continuar aprendendo sobre manipulação de strings em PHP, consulte PHP Strings, str_replace(), explode() e str_pad().