Aller au contenu

Couper la fin d'une Chaîne


Sujets conseillés

Posté (modifié)

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

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

Modifié par dièse
Posté

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.

Posté
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 ;).

  • 3 semaines plus tard...
Posté

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 !

Posté

Tout simplement en sortant le / de la parenthèse, comme ceci

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

Veuillez vous connecter pour commenter

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



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