PHP 8.3.4 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:

  • " " (ASCII 32 (0x20)), ein normales Leerzeichen.
  • "\t" (ASCII 9 (0x09)), ein Tabulatorzeichen.
  • "\n" (ASCII 10 (0x0A)), einen Zeilenvorschub (Line Feed).
  • "\r" (ASCII 13 (0x0D)), ein Wagenrücklaufzeichen (Carriage Return).
  • "\0" (ASCII 0 (0x00)), das NUL-Byte.
  • "\v" (ASCII 11 (0x0B)), ein vertikaler Tabulator.

Parameter-Liste

string

string erwartet die zu trimmende Zeichenkette.

characters

Optional kann die Liste der Zeichen angegeben werden, die an Anfang und Ende der Zeichenkette entfernt werden sollen. Um diese Zeichen anzugeben, wird der characters-Parameter verwendet. Er enthält eine Liste aller zu entfernenden Zeichen. Mit .. können darüber hinaus auch ganze Bereiche 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
10 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
8 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