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.