W3docs

rtrim()

Die PHP-Funktion rtrim() entfernt Leerzeichen oder andere Zeichen vom rechten Ende eines Strings. Syntax, Standardzeichen und Zeichenmasken.

Die PHP-Funktion rtrim() entfernt Leerzeichen — oder andere von Ihnen angegebene Zeichen — vom rechten Ende eines Strings. (Das „r" steht für right, also rechts.) Sie gibt einen neuen, gekürzten String zurück und lässt den ursprünglichen unverändert, da Strings in PHP als Wert übergeben werden.

Diese Seite behandelt die Syntax, welche Zeichen standardmäßig entfernt werden, wie eine benutzerdefinierte Zeichenmaske (einschließlich Bereichen) angegeben wird und wann rtrim() das richtige Werkzeug ist im Vergleich zu den verwandten Funktionen ltrim() und trim().

Syntax

rtrim(string $string, string $characters = " \n\r\t\v\x00"): string
ParameterErforderlichBeschreibung
$stringJaDer zu kürzende Eingabestring.
$charactersNeinEine Liste von Zeichen, die vom Ende entfernt werden sollen. Wird dieser Parameter weggelassen, wird der standardmäßige Leerzeichen-Satz verwendet.

Rückgabewert: der gekürzte String. Die Funktion verändert $string niemals direkt.

Standardmäßig entfernte Zeichen

Wenn Sie rtrim() mit nur einem Argument aufrufen, werden folgende abschließende Zeichen entfernt:

ZeichenBedeutung
" " (0x20)Normales Leerzeichen
"\t" (0x09)Tabulator
"\n" (0x0A)Zeilenvorschub (Newline)
"\r" (0x0D)Wagenrücklauf
"\0" (0x00)NUL-Byte
"\v" (0x0B)Vertikaler Tabulator

Beachten Sie, dass dieser Standardsatz keine anderen Unicode-Leerzeichen wie das geschützte Leerzeichen (\xA0) enthält; um diese zu entfernen, müssen Sie sie explizit in der Maske angeben.

Abschließende Leerzeichen entfernen

Die häufigste Verwendung ist das Bereinigen von abschließenden Leerzeichen, Tabulatoren und Zeilenumbrüchen — zum Beispiel nach dem Lesen einer Zeile aus einer Datei oder dem Bereinigen von Formulareingaben.

php— editable, runs on the server

Das | markiert, wo der String jetzt endet, sodass Sie sehen können, dass die abschließenden Leerzeichen verschwunden sind:

Hello World!|

Zeilenumbrüche und Tabulatoren werden auf die gleiche Weise behandelt:

<?php
$line = "value\t\r\n";
echo rtrim($line) . '|'; // value|
?>

Bestimmte Zeichen mit einer Maske entfernen

Übergeben Sie ein zweites Argument, um einen benutzerdefinierten Zeichensatz anstelle von Leerzeichen zu entfernen. Jedes in der Maske aufgeführte Zeichen wird vom Ende entfernt, wiederholt, bis ein Zeichen erreicht wird, das nicht in der Maske enthalten ist.

<?php
echo rtrim('Hello World...', '.') . "\n";   // Hello World
echo rtrim('/path/to/dir///', '/') . "\n";  // /path/to/dir
echo rtrim('cleanup.txt.bak', '.bak') . "\n"; // cleanup.txt — strips any of '.', 'b', 'a', 'k'
?>

Die dritte Zeile ist eine häufige Fehlerquelle: Die Maske ist ein Satz einzelner Zeichen, kein Teilstring. '.bak' bedeutet „entferne jedes der Zeichen ., b, a, k", sodass es weiter löscht, bis es das t in txt erreicht. Wenn Sie ein wörtliches Suffix-String entfernen müssen, verwenden Sie stattdessen str_replace() oder substr().

Zeichenbereiche

Sie können einen zusammenhängenden Bereich mit .. zwischen zwei Zeichen ausdrücken — praktisch zum Entfernen aller abschließenden Ziffern oder Buchstaben:

<?php
echo rtrim('item42', '0..9') . "\n";  // item — strips trailing digits 0-9
?>

rtrim() vs ltrim() vs trim()

Diese drei Funktionen haben dieselbe Signatur und dieselben Zeichenmasken-Regeln; sie unterscheiden sich nur darin, welche Seite des Strings sie betreffen:

FunktionKürzt von
ltrim()Links (Anfang)
rtrim()Rechts (Ende)
trim()Beiden Enden

Verwenden Sie rtrim() gezielt, wenn führende Leerzeichen bedeutsam sind, abschließende Leerzeichen jedoch störend sind — zum Beispiel beim Beibehalten von Einrückungen, während Zeilenende-Artefakte entfernt werden.

Zusammenfassung

  • rtrim() entfernt Leerzeichen (oder einen benutzerdefinierten Zeichensatz) vom Ende eines Strings und gibt das Ergebnis zurück.
  • Ohne zweites Argument entfernt es Leerzeichen, Tabulator, Zeilenvorschub, Wagenrücklauf, NUL und vertikalen Tabulator.
  • Die optionale Maske ist ein Satz von Zeichen, kein Suffix — zum Entfernen eines wörtlichen Endes verwenden Sie str_replace().
  • Verwenden Sie ltrim() für den Anfang und trim() für beide Enden.

Übungen

Übung
Was ist die Funktion von rtrim() in PHP?
Was ist die Funktion von rtrim() in PHP?
Was this page helpful?