rtrim()
Artigo sobre a função PHP rtrim(), usada para remover espaços em branco (ou outros caracteres) do final de uma string.
A função PHP rtrim() remove espaços em branco — ou quaisquer outros caracteres que você especificar — do lado direito de uma string. (O "r" vem de right, direito em inglês.) Ela retorna uma nova string aparada e deixa a original intacta, pois strings são passadas por valor em PHP.
Esta página aborda a sintaxe, quais caracteres são removidos por padrão, como fornecer uma máscara de caracteres personalizada (incluindo intervalos) e quando rtrim() é a ferramenta certa em comparação com suas funções irmãs ltrim() e trim().
Sintaxe
rtrim(string $string, string $characters = " \n\r\t\v\x00"): string| Parâmetro | Obrigatório | Descrição |
|---|---|---|
$string | Sim | A string de entrada a ser aparada. |
$characters | Não | Uma lista de caracteres a remover do final. Se omitido, o conjunto padrão de espaços em branco é usado. |
Valor de retorno: a string aparada. A função nunca modifica $string no lugar.
Caracteres removidos por padrão
Quando você chama rtrim() com apenas um argumento, ela remove estes caracteres do final:
| Caractere | Significado |
|---|---|
" " (0x20) | Espaço comum |
"\t" (0x09) | Tabulação |
"\n" (0x0A) | Avanço de linha (newline) |
"\r" (0x0D) | Retorno de carro |
"\0" (0x00) | Byte NUL |
"\v" (0x0B) | Tabulação vertical |
Note que este conjunto padrão não inclui outros espaços em branco Unicode como o espaço não quebrável (\xA0); para removê-los você deve listá-los explicitamente na máscara.
Removendo espaços em branco no final
O uso mais comum é limpar espaços, tabulações e quebras de linha no final — por exemplo, após ler uma linha de um arquivo ou sanitizar uma entrada de formulário.
O | marca onde a string termina agora, para que você possa ver que os espaços no final foram removidos:
Hello World!|Novas linhas e tabulações são tratadas da mesma forma:
<?php
$line = "value\t\r\n";
echo rtrim($line) . '|'; // value|
?>Removendo caracteres específicos com uma máscara
Passe um segundo argumento para remover um conjunto personalizado de caracteres em vez de espaços em branco. Cada caractere listado na máscara é removido do final, repetidamente, até que um caractere que não está na máscara seja encontrado.
<?php
echo rtrim('Hello World...', '.') . "\n"; // Hello World
echo rtrim('/path/to/dir///', '/') . "\n"; // /path/to/dir
echo rtrim('cleanup.txt.bak', '.bak') . "\n"; // cleanup.txt — strips any of '.', 'b', 'a', 'k'
?>A terceira linha é uma armadilha comum: a máscara é um conjunto de caracteres individuais, não uma substring. '.bak' significa "remover qualquer um dos caracteres ., b, a, k", portanto ela continua consumindo até atingir o t em txt. Se você precisar remover uma string de sufixo literal, use str_replace() ou substr() em vez disso.
Intervalos de caracteres
Você pode expressar um intervalo contíguo com .. entre dois caracteres — prático para remover todos os dígitos ou letras do final:
<?php
echo rtrim('item42', '0..9') . "\n"; // item — strips trailing digits 0-9
?>rtrim() vs ltrim() vs trim()
Estas três funções compartilham a mesma assinatura e regras de máscara de caracteres; elas diferem apenas no lado da string que afetam:
| Função | Remove de |
|---|---|
ltrim() | Esquerda (início) apenas |
rtrim() | Direita (fim) apenas |
trim() | Ambos os lados |
Use rtrim() especificamente quando o espaço em branco no início é significativo mas o espaço em branco no final é ruído — por exemplo, preservando a indentação enquanto elimina artefatos de fim de linha.
Resumo
rtrim()remove espaços em branco (ou um conjunto personalizado de caracteres) do final de uma string e retorna o resultado.- Sem o segundo argumento, ela remove espaço, tabulação, nova linha, retorno de carro, NUL e tabulação vertical.
- A máscara opcional é um conjunto de caracteres, não um sufixo — para remover um final literal, use
str_replace(). - Use
ltrim()para o início etrim()para ambos os lados.