trim

(PHP 4, PHP 5)

trimRimuove gli spazi (ed altri caratteri) all'inizio e alla fine di un testo

Descrizione

string trim ( string $str [, string $charlist ] )

Questa funzione restituisce il parametro str privo degli spazi iniziali e finali. Senza la specifica del secondo parametro, trim() rimuoverà questi caratteri:

  • " " (ASCII 32 (0x20)), spazio.
  • "\t" (ASCII 9 (0x09)), il carattere tab.
  • "\n" (ASCII 10 (0x0A)), il new line (line feed).
  • "\r" (ASCII 13 (0x0D)), il carriage return.
  • "\0" (ASCII 0 (0x00)), il byte NUL.
  • "\x0B" (ASCII 11 (0x0B)), il tab verticale.

Elenco dei parametri

str

La stringa che deve essere troncata.

charlist

Opzionale, Si può, inoltre, specificare quali caratteri si desidera rimuovere elencandoli in charlist. Questo parametro è un semplice elenco dei caratteri da rimuovere. Con .. si può indicare un range di caratteri.

Valori restituiti

La stringa troncata.

Log delle modifiche

Versione Descrizione
4.1.0 E' stato aggiunto il parametro opzionale charlist.

Esempi

Example #1 Esempio di uso di trim()

<?php

$text 
"\t\tThese are a few words :) ...  ";

echo 
trim($text);           // "These are a few words :) ..."
echo trim($text" \t.");   // "These are a few words :)"

// rimuove i caratteri di controllo ASCII all'inizio ed alla fine di $binary
// (da 0 a 31 compresi)
$clean trim($binary"\x00..\x1F");

?>

Example #2 Trimming array values with trim()

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

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

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

?>

Il precedente esempio visualizzerà:

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"
}

Vedere anche:

  • ltrim() - Rimuove gli spazi (o altri caratteri) dall'inizio di una stringa
  • rtrim() - Rimuove gli spazi (ed altri caratteri) dalla fine della stringa

add a note add a note

User Contributed Notes 7 notes

up
39
Piopier
10 years ago
It may be useful to know that trim() returns an empty string when the argument is an unset/null variable.
up
36
ludko2 at gmail dot com
6 years ago
Non-breaking spaces can be troublesome with trim:

<?php
// turn some HTML with non-breaking spaces into a "normal" string
$myHTML = "&nbsp;abc";
$converted = strtr($myHTML, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));

// this WILL NOT work as expected
// $converted will still appear as " abc" in view source
// (but not in od -x)
$converted = trim($converted);

// &nbsp; are translated to 0xA0, so use:
$converted = trim($converted, "\xA0"); // <- THIS DOES NOT WORK

// EDITED>>
// UTF encodes it as chr(0xC2).chr(0xA0)
$converted = trim($converted,chr(0xC2).chr(0xA0)); // should work

// PS: Thanks to John for saving my sanity!
?>
up
22
jubi at irc dot pl
12 years ago
To remove multiple occurences of whitespace characters in a string an convert them all into single spaces, use this:

<?

$text = preg_replace('/\s+/', ' ', $text);

?>

------------
JUBI
http://www.jubi.buum.pl
up
4
jianglong at qiyi dot com
1 year ago
Trim full width space will return mess character,  when target string starts with '《'

@example 
echo trim("《", " ");

@return


php version 5.4.27

[EDIT by cmb AT php DOT net: it is not necessarily safe to use trim with multibyte character encodings. The given example is equivalent to echo trim("\xe3\80\8a", "\xe3\x80\x80").]
up
8
Hayley Watson
12 years ago
Another way to trim all the elements of an array
<?php
$newarray
= array_map('trim', $array);
?>
up
-16
dmr37 at cornell dot edu
11 years ago
If you want to check whether something ONLY has whitespaces, use the following:

<?php

if (trim($foobar)=='') {
   echo
'The string $foobar only contains whitespace!';
}

?>
up
-20
HW
13 years ago
You can combine character ranges and individual characters in trim()'s second argument (ditto for ltrim and rtrim). All of the specified characters and ranges will be used concurrently (i.e., if a character on either end of the string matches any of the specified charaters or character ranges, it will be trimmed). The characters and character ranges can be in any order (except of course that the character ranges need to be specified in increasing order) and may overlap.
E.g., trim any nongraphical non-ASCII character:
trim($text,"\x7f..\xff\x0..\x1f");
To Top