PHP Velho Oeste 2024

trim

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

trimRetira espaço (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

  • " " (ASCII 32 (0x20)), um espaço normal.
  • "\t" (ASCII 9 (0x09)), uma tabulação.
  • "\n" (ASCII 10 (0x0A)), uma linha nova (alimentação de linha).
  • "\r" (ASCII 13 (0x0D)), um retono de carro.
  • "\0" (ASCII 0 (0x00)), o byte NUL.
  • "\v" (ASCII 11 (0x0B)), uma tabulação vertical.

Parâmetros

string

A string que será modificada.

characters

Opcionalmente, os caracteres removidos pode também ser especificados usando o parâmetro characters. Simplesmente liste todos os caracteres que você quer retirar. Com .. você pode especificar um intervalo 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ço 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

add a note

User Contributed Notes 2 notes

up
11
pcoates at yukon1000 dot com
9 months 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
0
gwyneth dot llewelyn at gwynethllewelyn dot net
7 months 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