2009-06-05 10 views
18

Je dois enlever la première barre oblique lien intérieur formaté comme ceci:Supprimer la première barre oblique dans un lien?

/directory/link.php 

je dois avoir:

directory/link.php 

Je ne suis pas lire et écrire dans les expressions régulières (? Preg_replace) et les barres obliques me tuer ..

J'ai besoin de votre aide stackoverflow!

Merci beaucoup!

+0

re bonne ressource d'apprentissage - J'ai appris beaucoup en utilisant l'entraîneur Regex: http://www.weitz.de/regex-coach/ (gratuit pour un usage personnel et commercial) – Piskvor

+0

meilleur endroit pour obtenir savoir preg_replace est bien sûr [documentation php] (http://php.net/preg_replace) Je vous suggère de vérifier la documentation [general preg (pcre)] (http://uk3.php.net/manual/fr/ book.pcre.php) aussi bien. –

Répondre

65

Tout simplement parce que personne ne l'a mentionné avant:

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

L'avantage de celui-ci est :

  • par rapport au substr() solution: il fonctionne également avec les chemins qui ne commencent pas par une barre oblique. Donc, en utilisant la même procédure plusieurs fois sur un URI est sûr.

  • par rapport au preg_replace() solution: c'est certainement beaucoup plus rapide. Activer le regex-moteur pour une tâche si triviale est, à mon avis, exagéré.

+0

darn. Dès que j'ai vu cette question, j'espérais pouvoir suggérer cela. :) +1 –

+0

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

+0

'trim' supprimera aussi plusieurs slashs, donc' trim ('// foo/bar') 'devient 'foo/bar' ce qui pourrait ne pas être ce que vous voulez. –

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

Merci beaucoup, pouvez-vous me signaler une bonne ressource d'apprentissage pour preg_replace? – 0plus1

+0

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

+1

peut également être écrit comme 'preg_replace ('# ^/#', '', $ link);' qui peut être plus lisible –

3

S'il est toujours le premier caractère, vous ne avez besoin d'une regex:

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

Vous n'avez pas besoin de spécifier la longueur. – Gumbo

+0

@Gumbo - Doh! Merci – karim79

+0

Merci, j'ai complètement perdu ma perspective .. et négligé cette méthode simple .. – 0plus1

Questions connexes