Entfernen Sie den abschließenden Schrägstrich aus String PHP


100

Ist es möglich, den abschließenden Schrägstrich /mit PHP aus einem String zu entfernen ?

Antworten:


235

Sicher ist es, überprüfen Sie einfach, ob das letzte Zeichen ein Schrägstrich ist, und zerstören Sie dann dieses.

if(substr($string, -1) == '/') {
    $string = substr($string, 0, -1);
}

Eine andere (wahrscheinlich bessere) Option wäre die Verwendung rtrim()- diese entfernt alle nachgestellten Schrägstriche:

$string = rtrim($string, '/');

Ich würde auch vorschlagen, DIRECTORY_SEPARATORstatt '/' Dateipfade zu verwenden, damit es auf allen Plattformen funktioniert.
Brad

61

Dadurch werden nachgestellte Schrägstriche entfernt:

$str = rtrim($str, '/');

13
Beachten Sie, dass dadurch alle nachgestellten Schrägstriche entfernt werden.
Gumbo

24

Lange akzeptiert, aber in meinen verwandten Suchen bin ich hier gestolpert und füge der "Vollständigkeit" hinzu; rtrim()ist toll, aber so implementiert:

$string = rtrim($string, '/\\'); //strip both forward and back slashes

Es stellt die Portabilität von * nix nach Windows sicher , da ich davon ausgehe, dass diese Frage den Umgang mit Pfaden betrifft.


1
interessant! Am Ende stolperte ich jedoch über Routen , nicht über Pfade
Félix Gagnon-Grenier

1
@ FélixGagnon-Grenier Nun, die Antwort ist etwas anmaßend in Bezug auf Pfade; Das OP kann ganz andere Gründe gehabt haben. Da "Routen" normalerweise auf "Pfaden" ( irgendeiner Art ) wirken, ist es am Ende alle gleich :-)
Dan Lugg

Wenn der Op tatsächlich ein nachfolgendes Verzeichnis-Trennzeichen aus einem Pfad entfernen möchte, verwenden Sie DIRECTORY_SEPARATORstattdessen die Konstante '/\\'.
Jens

@Jens Ich würde jedoch zustimmen, da PHP * nix unterstützt und Windows-Pfade Eckfälle möglicherweise nicht gekürzt werden.
Dan Lugg

@NorthbornDesign: Hast du ein Beispiel? Sie meinen, einen * nix-Pfad unter Windows zu kürzen und umgekehrt, nicht nur native Pfade?
Jens

4

rtrim Verwenden Sie rtrim, da die Zeichenfolge nicht mit einem abschließenden Schrägstrich endet


2
Abgesehen davon, dass nachfolgende Schrägstriche nicht wirklich entfernt werden, sondern die Anführungszeichen einer Zeichenfolge aufgehoben werden.
user502515

Nun, ich habe den nachfolgenden Teil in der Frage verpasst ... Ich habe einen Fehler gemacht und speziell geschrieben, dass er alle Schrägstriche entfernt
Breezer

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.