Phénol Posté 13 Janvier 2007 Posté 13 Janvier 2007 Bonjour, J'ai une variable $url style http://domaine.com/page.php, je souhaiterais trouver un moyen de m'arrêter au dernier / de l'URL, par exemple : http://www.domaine.fr/sousrep/4/10/page.php --> http://www.domaine.fr/sousrep/4/10/ Je connais stristr() qui bien sûr n'a pas pour effet ce que je souhaite, si quelqu'un peut m'aider... Merci !
dièse Posté 13 Janvier 2007 Posté 13 Janvier 2007 (modifié) preg_match('#(.*/)[^/]*#', 'http://www.domaine.fr/sousrep/4/10/page.php ', $r); $r[1] contiendra la chaine que tu souhaites Modifié 13 Janvier 2007 par dièse
TheRec Posté 13 Janvier 2007 Posté 13 Janvier 2007 Bonsoir, Je ne suis pas partisan des expressions rationnelles dans des cas "simples" comme celui-ci, je ferai ça ainsi... le résultat est sensiblement le même, donc à toi de faire ton choix $url = 'http://www.domaine.fr/sousrep/4/10/page.php';$dirpath = substr($url,0,strrpos($url,'/')+1); Note toutefois que ce code (et celui de dièse) ne fonctionne pas pour une URL ou le dernier répertoire n'est pas suivi d'un "/" (trailing-slash), par exemple : [i]http://www.domaine.fr/sousrep/4/10'>]http://www.domaine.fr/sousrep/4/10 devient [i]http://www.domaine.fr/sousrep/4/ Je mentionne cela car les URL omettant le trailing-slash sont courantes (et fondamentalement pas valide, sans le trailing-slash ce qui vient après le dernier slash devrait être considéré comme un fichier, m). Bonne continuation.
Phénol Posté 13 Janvier 2007 Auteur Posté 13 Janvier 2007 1000 Mercis ! Faut vraiment que je bosse mes RegExp...
dièse Posté 13 Janvier 2007 Posté 13 Janvier 2007 Note toutefois que ce code (et celui de dièse) ne fonctionne pas pour une URL ou le dernier répertoire n'est pas suivi d'un "/" (trailing-slash), par exemple :[i]http://www.domaine.fr/sousrep/4/10'>]http://www.domaine.fr/sousrep/4/10 devient [i]http://www.domaine.fr/sousrep/4/ héhé, d'où l'intérêt des regex, elles sont facilement adaptables. Dans ce cas ci il suffit de vérifier que le dernier segment contient une extension .
Phénol Posté 30 Janvier 2007 Auteur Posté 30 Janvier 2007 La situation va vous sembler bête mais bon, je tente ! J'ai utiliser ce code qui fonctionne très bien : preg_match('#(.*/)[^/]*#', 'http://www.domaine.fr/sousrep/4/10/page.php ', $r); MAIS, le problème est que le caractère "repère" reste, je voudrai qu'il parte avec sa suite ! En gros, en partant d'une page http://www.domaine.fr/sousrep/4/10/page.php, il reste http://www.domaine.fr/sousrep/4/10/, et j'aimerais qu'il ne reste que http://www.domaine.fr/sousrep/4/10 ! Voilou ! Merci par avance !
Dan Posté 31 Janvier 2007 Posté 31 Janvier 2007 Tout simplement en sortant le / de la parenthèse, comme ceci preg_match('#(.*)/[^/]*#', 'http://www.domaine.fr/sousrep/4/10/page.php ', $r);
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant