(PHP 4, PHP 5, PHP 7)
trim — Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings
$str
[, string $character_mask
= " \t\n\r\0\x0B"
] ) : string
Die Funktion entfernt Whitespaces am Anfang und Ende von
str
und gibt den String dann zurück.
Ohne Verwendung des zweiten Parameters entfernt trim()
folgende Zeichen:
32
(0x20
)), ein normales Leerzeichen.
9
(0x09
)), ein Tabulatorzeichen.
10
(0x0A
)), einen Zeilenvorschub (Line Feed).
13
(0x0D
)), ein Wagenrücklaufzeichen (Carriage Return).
0
(0x00
)), das NUL
-Byte.
11
(0x0B
)), ein vertikaler Tabulator.
str
string erwartet die zu trimmende Zeichenkette.
character_mask
Optional kann die Liste der Zeichen angegeben werden, die an
Anfang und Ende der Zeichenkette entfernt werden sollen. Um diese Zeichen
anzugeben, wird der character_mask
Parameter verwendet.
Er enthält eine Liste aller zu entfernenden Zeichen. Mit
..
können darüber hinaus auch ganze Bereiche von
Zeichen angegeben werden.
Der gekürzte String.
Beispiel #1 Beispiel zur Verwendung von trim()
<?php
$text = "\t\tDieser Text besteht aus mehreren Wörtern :) ... ";
$binary = "\x09Beispielhafter String\x0A";
$hello = "Hallo Welt";
var_dump($text, $binary, $hello);
print "\n";
$trimmed = trim($text);
var_dump($trimmed);
$trimmed = trim($text, " \t.");
var_dump($trimmed);
$trimmed = trim($hello, "Htla");
var_dump($trimmed);
$trimmed = trim($hello, 'HtWr');
var_dump($trimmed);
// Trimmen der ASCII Steuerzeichen an Anfang und Ende von $binary
// (inklusive der Zeichen von ASCII 0 bis 31)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
string(51) " Dieser Text besteht aus mehreren Wörtern :) ... " string(23) " Beispielhafter String " string(10) "Hallo Welt" string(47) "Dieser Text besteht aus mehreren Wörtern :) ..." string(43) "Dieser Text besteht aus mehreren Wörtern :)" string(4) "o We" string(8) "allo Wel" string(21) "Beispeilhafter String"
Beispiel #2 Trimmen von Array-Werten mittels trim()
<?php
function trim_value(&$value)
{
$value = trim($value);
}
$fruechte = array('Apfel','Banane ', ' Preiselbeere ');
var_dump($fruechte);
array_walk($fruechte, 'trim_value');
var_dump($fruechte);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(3) { [0]=> string(5) "Apfel" [1]=> string(7) "Banane " [2]=> string(11) " Preiselbeere " } array(3) { [0]=> string(5) "Apfel" [1]=> string(6) "Banane" [2]=> string(9) "Preiselbeere" }
Hinweis: Mögliche Überraschungen: Entfernung mittlerer Zeichen
Weil trim() Zeichen vom Anfang und Ende einer Zeichenkette (string) entfernt, kann es verwirrend sein, wenn Zeichen aus der Mitte gelöscht (oder nicht) werden.
trim('abc', 'bad')
entfernt 'a' und 'b', weil es 'a' entfernt, verschiebt daher 'b' an den Anfang um ebenfalls entfernt zu werden. Daher "funktioniert" es,trim('abc', 'b')
dagegen scheinbar nicht.