2009-06-05 10 views
18

Ho bisogno di rimuovere il primo slash all'interno collegamento formattato in questo modo:Rimuovere la prima barra in avanti in un collegamento?

/directory/link.php 

ho bisogno di avere:

directory/link.php 

Io non sono alfabetizzati nelle espressioni regolari (? Preg_replace) e quelle barre mi stanno uccidendo ..

Ho bisogno del tuo aiuto StackOverflow!

Grazie mille!

+0

re buona risorsa di apprendimento - ho imparato molto utilizzando la regex Allenatore: http://www.weitz.de/regex-coach/ (gratuito per uso personale e commerciale) – Piskvor

+0

posto migliore per ottenere sapere che preg_replace è ovviamente [documentazione php] (http://php.net/preg_replace) Suggerisco di controllare [documentazione generale preg (pcre)] (http://uk3.php.net/manual/en/ book.pcre.php) pure. –

risposta

65

Solo perché nessuno ha parlato prima:

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

Il vantaggio di questo è :

  • rispetto allo substr() solution: funziona anche con percorsi che non iniziano con una barra. Quindi usare la stessa procedura più volte su un uri è sicuro.

  • rispetto allo preg_replace() solution: è sicuramente molto più veloce. L'attivazione del motore regex per un compito così banale è, a mio avviso, eccessivo.

+0

maledetto. non appena ho visto questa domanda speravo di poterlo suggerire. :) +1 –

+0

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

+0

'trim' rimuoverà anche più barre, quindi' trim ('// foo/bar') 'diventa 'foo/bar' che potrebbe non essere quello che vuoi. –

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

Grazie mille, puoi indicarmi una buona risorsa di apprendimento per preg_replace? – 0plus1

+0

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

+1

può anche essere scritto come 'preg_replace ('# ^/#', '', $ link);' che può essere più leggibile –

3

Se è sempre il primo carattere, non avrete bisogno di un'espressione regolare:

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

Non è necessario specificare la lunghezza. – Gumbo

+0

@Gumbo - Doh! Grazie – karim79

+0

Grazie, ho completamente perso la mia prospettiva .. e ho trascurato questo semplice metodo .. – 0plus1

Problemi correlati