PHP 8.4.1 Released!

trim

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

trimEntfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings

Beschreibung

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

Die Funktion entfernt Whitespaces am Anfang und Ende von string und gibt den String dann zurück. Ohne Verwendung des zweiten Parameters entfernt trim() folgende Zeichen:

  • " ": das ASCII-Zeichen SP 0x20, ein gewöhliches Leerzeichen.
  • "\t": das ASCII-Zeichen HT 0x09, ein Tabulatorzeichen.
  • "\n": das ASCII-Zeichen LF 0x0A, eine neue Zeile (Zeilenvorschub, Line Feed).
  • "\r": das ASCII-Zeichen CR 0x0D, ein Wagenrücklauf (Carriage Return)
  • "\0": das ASCII-Zeichen NUL 0x00, das NUL-Byte.
  • "\v": das ASCII-Zeichen VT 0x0B, ein vertikales Tabulatorzeichen.

Parameter-Liste

string

Die zu trimmende Zeichenkette vom Typ string.

characters
Optional können die zu entfernenden Zeichen auch mit dem Parameter characters angegeben werden. Dazu werden einfach alle Zeichen aufgelistet, die entfernt werden sollen. Mit .. kann ein aufsteigender Bereich von Zeichen angegeben werden.

Rückgabewerte

Der gekürzte String.

Beispiele

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

Anmerkungen

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.

Siehe auch

  • ltrim() - Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings
  • rtrim() - Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings
  • str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
add a note

User Contributed Notes 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