Phénol Posté 13 Janvier 2007 Partager 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
dièse Posté 13 Janvier 2007 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
TheRec Posté 13 Janvier 2007 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Phénol Posté 13 Janvier 2007 Auteur Partager Posté 13 Janvier 2007 1000 Mercis ! Faut vraiment que je bosse mes RegExp... Lien vers le commentaire Partager sur d’autres sites More sharing options...
dièse Posté 13 Janvier 2007 Partager 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 . Lien vers le commentaire Partager sur d’autres sites More sharing options...
Phénol Posté 30 Janvier 2007 Auteur Partager 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 31 Janvier 2007 Partager 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); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant