W3docs

chop()

Saiba como usar a função PHP chop() para remover espaços em branco ou outros caracteres do final de uma string.

A função PHP chop() remove espaços em branco (ou outros caracteres especificados) do final (lado direito) de uma string e retorna o resultado. Ela não altera o início da string e nunca modifica a variável original — retorna uma nova string.

Esta página aborda a sintaxe de chop(), quais caracteres ela remove por padrão, como passar uma máscara de caracteres personalizada e as armadilhas mais comuns a observar.

chop() é um alias de rtrim()

O mais importante a saber: chop() é simplesmente um alias de rtrim(). As duas funções têm comportamento idêntico — chop é o nome mais antigo (familiar para desenvolvedores Perl), enquanto rtrim ("right trim") é o mais descritivo. Códigos novos geralmente preferem rtrim(), mas você ainda encontrará chop() em bases de código existentes.

Se precisar remover do lado esquerdo, use ltrim(); para remover dos dois lados, use trim().

Sintaxe

chop(string $string, string $characters = " \n\r\t\v\0"): string

A função aceita um ou dois parâmetros:

  • $string — a string a ser aparada.
  • $characters (opcional) — uma lista de caracteres a remover do final. Quando omitido, chop() remove os caracteres de espaço em branco padrão listados abaixo.

Ela retorna a string aparada. A entrada é passada por valor, portanto $string em si permanece inalterada.

Caracteres removidos por padrão

Quando você chama chop() com um argumento, ela remove estes caracteres do final:

CaractereSignificado
" "espaço comum
"\t"tabulação
"\n"nova linha (line feed)
"\r"retorno de carro
"\0"byte NUL
"\v"tabulação vertical

Removendo espaços em branco no final

O uso mais comum é eliminar espaços, tabulações ou quebras de linha no final — por exemplo, após ler uma linha de um arquivo:

php— editable, runs on the server

Adicionamos um | para que o limite após a remoção fique visível. Saída:

Hello, World!|

Os espaços no final foram removidos, enquanto tudo antes deles permanece intacto.

Usando uma máscara de caracteres

Passe um segundo argumento para remover um conjunto personalizado de caracteres em vez de espaços em branco. Cada caractere da máscara é removido do final, repetidamente, até que um caractere fora da máscara seja encontrado:

php— editable, runs on the server

Saída:

Hello, Wor

A máscara "ld!" é um conjunto de caracteres, não uma substring. Lendo da direita, !, d, l e depois d estão todos no conjunto e são removidos; r não está no conjunto, portanto a remoção para aí.

Intervalos de caracteres com ..

Dentro da máscara você pode expressar um intervalo com dois pontos. Por exemplo, "0..9" significa "qualquer dígito", portanto isto remove todos os números no final:

<?php
echo chop("order100200", "0..9");
?>

Saída:

order

Armadilhas comuns

  • Ela apenas apara as extremidades, não o meio. chop("a b ") retorna "a b" — os espaços entre a e b permanecem.
  • A máscara é um conjunto de caracteres, não um sufixo literal. chop("Hello, World!", "Hd") retorna a string inalterada, pois o último caractere ! não está no conjunto H/d, e a remoção nunca começa.
  • Ela não modifica a variável original. Sempre atribua ou use o valor de retorno: $clean = chop($raw);.

Quando usá-la

Use chop() / rtrim() sempre que caracteres no final possam prejudicar uma comparação ou exibição:

  • Remover a quebra de linha no final de uma linha lida com fgets().
  • Limpar a entrada do usuário antes de armazená-la.
  • Remover uma barra final de um caminho ou URL: rtrim($path, "/").

Para substituir caracteres em qualquer parte de uma string (não apenas nas extremidades), use str_replace().

Prática

Prática
Qual é a função de 'chop()' em PHP?
Qual é a função de 'chop()' em PHP?
Was this page helpful?