Aller au contenu

Couper la fin d'une Chaîne


Phénol

Sujets conseillés

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

preg_match('#(.*/)[^/]*#', 'http://www.domaine.fr/sousrep/4/10/page.php ', $r);

$r[1] contiendra la chaine que tu souhaites ;)

Modifié par dièse
Lien vers le commentaire
Partager sur d’autres sites

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

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

  • 3 semaines plus tard...

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

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...