2009-06-05 11 views
18

Ich brauche die erste Schrägstrich innerhalb Link wie folgt formatiert zu entfernen:Entfernen Sie den ersten Schrägstrich in einem Link?

/directory/link.php 

Ich habe müssen:

directory/link.php 

Ich bin nicht lesen und schreiben in regulären Ausdrücken (? Preg_replace) und diese Schrägstriche bring mich um ..

Ich brauche deine Hilfe stackoverflow!

Vielen Dank!

+0

re gute Lernressource - Ich habe viel durch die Verwendung der Regex Coach gelernt: http://www.weitz.de/regex-coach/ (kostenlos für den privaten und gewerblichen Einsatz) – Piskvor

+0

beste Ort, um preg_replace zu kennen ist natürlich [php documentation] (http://php.net/preg_replace) Ich würde vorschlagen, [general preg (pcre) Dokumentation] (http://uk3.php.net/manual/en/ buch.pcre.php) auch. –

Antwort

65

Nur weil niemand hat es schon erwähnt:

$uri = "/directory/link.php"; 
$uri = ltrim($uri, '/'); 

Der Vorteil dieser ist :

  • im Vergleich zu substr() solution: funktioniert es auch mit Pfaden, die nicht mit einem Schrägstrich beginnen. So ist die mehrfache Verwendung derselben Prozedur auf einer Uri sicher.

  • im Vergleich zu preg_replace() solution: ist es sicherlich viel schneller. Die Regex-Engine für so eine triviale Aufgabe zu betreiben, ist meiner Meinung nach ein Overkill.

+0

verdammt. Sobald ich diese Frage gesehen hatte, hoffte ich, dass ich das vorschlagen würde. :) +1 –

+0

ltrim ($ uri, chr (47)); –

+0

'trim' wird auch mehrere Schrägstriche entfernen, also wird 'trim (' // foo/bar ')'' foo/bar ', was nicht unbedingt das ist, was du willst. –

5
preg_replace('/^\//', '', $link); 
+0

Vielen Dank, kannst du mich auf eine gute Lernquelle für preg_replace hinweisen? – 0plus1

+0

@ 0plus1 http://www.regular-expressions.info/ –

+1

kann auch geschrieben werden als 'preg_replace ('# ^/#', '', $ link);', die besser lesbar sein können –

3

Wenn es immer das erste Zeichen, werden Sie nicht einen regulären Ausdruck benötigen:

$uri = "/directory/link.php"; 
$uri = substr($uri, 1); 
+0

Sie müssen die Länge nicht angeben. – Gumbo

+0

@Gumbo - Doh! Danke – karim79

+0

Danke, ich verlor komplett meine Perspektive .. und übersehen diese einfache Methode .. – 0plus1

Verwandte Themen