PHP 8.4.2 Released!

trim

(PHP 4, PHP 5, PHP 7, PHP 8)

trimRetira espaços (ou outros caracteres) do início e do final de uma string

Descrição

trim(string $string, string $characters = " \n\r\t\v\x00"): string

Esta função retorna uma string com os espaços retirados do ínicio e do final de string. Sem o segundo parâmetro, trim() irá retirar estes caracteres

  • " ": caractere ASCII SP 0x20, um espaço normal.
  • "\t": caractere ASCII HT 0x09, uma tabulação.
  • "\n": caractere ASCII LF 0x0A, uma nova linha (alimentação de linha).
  • "\r": caractere ASCII CR 0x0D, um retorno de carro.
  • "\0": caractere ASCII NUL 0x00, o byte nulo.
  • "\v": caractere ASCII VT 0x0B, uma tabulação vertical.

Parâmetros

string

A string que será modificada.

characters
Opcionalmente, os caracteres removidos também podem ser especificados usando o parâmetro characters. Simplesmente liste todos os caracteres que precisam ser removidos. Com .. é possível especificar um intervalo incremental de caracteres.

Valor Retornado

A string com caracteres removidos.

Exemplos

Exemplo #1 Exemplo de uso de trim()

<?php

$text
= "\t\tThese are a few words :) ... ";
$binary = "\x09Example string\x0A";
$hello = "Hello World";
var_dump($text, $binary, $hello);

print
"\n";

$trimmed = trim($text);
var_dump($trimmed);

$trimmed = trim($text, " \t.");
var_dump($trimmed);

$trimmed = trim($hello, "Hdle");
var_dump($trimmed);

$trimmed = trim($hello, 'HdWr');
var_dump($trimmed);

// retira os caracteres ASCII de controle no início e fim de $binary
// (de 0 a 31 inclusive)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

O exemplo acima produzirá:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(9) "ello Worl"
string(14) "Example string"

Exemplo #2 Usando trim() em valores de array

<?php
function trim_value(&$value)
{
$value = trim($value);
}

$fruit = array('apple','banana ', ' cranberry ');
var_dump($fruit);

array_walk($fruit, 'trim_value');
var_dump($fruit);

?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cranberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cranberry"
}

Notas

Nota: Possível armadilha: removendo caracteres no meio da string

Como trim() retira caracteres do início de do fim de uma string, pode ser confuso quando caracteres são (ou não) removidos do meio. trim('abc', 'bad') remove tanto 'a' quanto 'b' porque ele retira 'a', portanto move 'b' para o início e também será retirado. Portanto, este é o motivo pelo qual isso "funciona" enquanto que trim('abc', 'b') aparentemente não funciona.

Veja Também

  • ltrim() - Retira espaços em branco (ou outros caracteres) do início de uma string
  • rtrim() - Retira espaços em branco (ou outros caracteres) do final de uma string
  • str_replace() - Substitui todas as ocorrências da string de pesquisa com a string de substituição
adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
11
pcoates at yukon1000 dot com
1 year ago
note there is a behaviour change in php 8

You used to be able to say:
$p1 = trim($_POST['p1']);
This will now throw deprecated warnings if parameter p1 is not set. It is better to say:
$p1 = trim($_POST['p1']??'');
or
$p1 = isset($_POST['p1']) ? trim($_POST['p1']) : null;
or
$p1 = isset($_POST['p1']) ? trim($_POST['p1']) : '';
up
3
gwyneth dot llewelyn at gwynethllewelyn dot net
1 year ago
Note that trim() is not aware of Unicode points that represent whitespace (e.g., in the General Punctuation block), except, of course, for the ones mentioned in this page.

There is no Unicode-specific trim function in PHP at the time of writing (July 2023), but you can try some examples of trims using multibyte strings posted on the comments for the mbstring extension: https://www.php.net/manual/en/ref.mbstring.php
To Top