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| Parameter | Erforderlich | Beschreibung |
|---|---|---|
$string | Ja | Der zu kürzende Eingabestring. |
$characters | Nein | Eine 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:
| Zeichen | Bedeutung |
|---|---|
" " (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.
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:
| Funktion | Kü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 undtrim()für beide Enden.