[PHP] Probleme avec les regex
8 messages • Page 1 sur 1
[PHP] Probleme avec les regex
Bonjour,
J'ai une url et je cherche a supprimer le nom de la page ( si elle existe ) tout en gardant le reste de l'arborescence .
Voici quelques exemples basique pour illustrer :
1 www.domaine.com
2 www.domaine.com/repertoire/
3 www.domaine.com/repertoire
4 http://www.domaine.com/repertoire/page.php
5 http://www.domaine.com/repertoire/zeze/ ... p?zeze=zze
Je cherche à avoir comme résultat :
1 www.domaine.com/
2 www.domaine.com/repertoire/
3 www.domaine.com/repertoire/
4 http://www.domaine.com/repertoire/
5 http://www.domaine.com/repertoire/zeze/abc/
Je me tord les cheveux depuis 1 heure avec les regex et je n'arrive pas à trouver de solution adequate .
J'ais aussi cherché du coté de path info ( http://www.php.net/pathinfo ) , mais cela ne m'aide pas .
Exemple avec $path_parts['dirname'];
ca affiche http://www.domaine.com/repertoire
C'est ok..... mais....
PAR CONTRE
affiche http://www.domaine.com
alors que j'aimerais avoir http://www.domaine.com/repertoire/
bref c'est pour ca que je me suis lancé dans les regex .
Mais je trouve pas de solution .
Quelqu'un peut m'aider ?
J'ai une url et je cherche a supprimer le nom de la page ( si elle existe ) tout en gardant le reste de l'arborescence .
Voici quelques exemples basique pour illustrer :
1 www.domaine.com
2 www.domaine.com/repertoire/
3 www.domaine.com/repertoire
4 http://www.domaine.com/repertoire/page.php
5 http://www.domaine.com/repertoire/zeze/ ... p?zeze=zze
Je cherche à avoir comme résultat :
1 www.domaine.com/
2 www.domaine.com/repertoire/
3 www.domaine.com/repertoire/
4 http://www.domaine.com/repertoire/
5 http://www.domaine.com/repertoire/zeze/abc/
Je me tord les cheveux depuis 1 heure avec les regex et je n'arrive pas à trouver de solution adequate .
J'ais aussi cherché du coté de path info ( http://www.php.net/pathinfo ) , mais cela ne m'aide pas .
Exemple avec $path_parts['dirname'];
- Code: Tout sélectionner
$url="http://www.domaine.com/repertoire/page.php";
$path_parts = pathinfo($url);
echo $path_parts['dirname'];
ca affiche http://www.domaine.com/repertoire
C'est ok..... mais....
PAR CONTRE
- Code: Tout sélectionner
$url="http://www.domaine.com/repertoire/";
$path_parts = pathinfo($url);
echo $path_parts['dirname'];
affiche http://www.domaine.com
alors que j'aimerais avoir http://www.domaine.com/repertoire/
bref c'est pour ca que je me suis lancé dans les regex .
Mais je trouve pas de solution .
Quelqu'un peut m'aider ?
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
-

bproductiv - WRInaute accro

- Messages: 2481
- Inscription: Lun Déc 27, 2004 17:29
Si ca peut t'aider voici une cheat sheet toute fraiche d'hier :
http://www.addedbytes.com/cheat-sheets/ ... eat-sheet/
http://www.addedbytes.com/cheat-sheets/ ... eat-sheet/
-

Jeviensderio - WRInaute accro

- Messages: 1340
- Inscription: Ven Sep 29, 2006 13:50
Les expressions régulières sont inefficaces dans ce cas là.
Je teste si c'est un un répertoire ou non par la présence du / terminal:
$x = substr($path, -1, 1);
S'il n'y a pas de / final, j'utilise pathinfo.
Je teste si c'est un un répertoire ou non par la présence du / terminal:
$x = substr($path, -1, 1);
S'il n'y a pas de / final, j'utilise pathinfo.
Jeviensderio a écrit:Les expressions régulières sont inefficaces dans ce cas là.
C'est puissant pourtant les regexp :
Pourrais-tu essayer celle-ci ?
$url=preg_replace("`/[^/]+\.[^/]+$`","/",$url);
Je n'ai pas testé, mais si elle ne marche pas on reviendra dessus....
$url = 'xxx';
$filename = parse_url( $url );
$filename = $filename['file'];
$clean_url = str_replace($filename, '', $url);
A tester
edit: j'avais pas vu le cas des paramètres ?xxx=yyy mais tu dois les retrouver dans le tableau retourné par parse_url()
$filename = parse_url( $url );
$filename = $filename['file'];
$clean_url = str_replace($filename, '', $url);
A tester
edit: j'avais pas vu le cas des paramètres ?xxx=yyy mais tu dois les retrouver dans le tableau retourné par parse_url()
-

UsagiYojimbo - WRInaute accro

- Messages: 4094
- Inscription: Mer Nov 23, 2005 11:38
Sinon peut-être bien plus simple : http://www.php.net/manual/fr/function.dirname.php
Re: [PHP] Probleme avec les regex
Toutes vos idées sans regexp ont un défaut, c'est qu'elles traitent -www.domaine.com/repertoire non comme un dossier mais comme un fichier, et renvoient -www.domaine.com/
C'est le problème du départ.
Au fait, -www.domaine.com existe vraiment ! Il récupère de bons backlinks avec ce post...
Stellvia a écrit:2 -www.domaine.com/repertoire/
3 -www.domaine.com/repertoire
C'est le problème du départ.
Au fait, -www.domaine.com existe vraiment ! Il récupère de bons backlinks avec ce post...
Re: [PHP] Probleme avec les regex
Tilt a écrit:Toutes vos idées sans regexp ont un défaut, c'est qu'elles traitent -www.domaine.com/repertoire non comme un dossier mais comme un fichier, et renvoient -www.domaine.com/
if( !ereg('/$', $url) && !ereg('^http:\/\/.+\/.+\..+', $url) ) $url .= '/';
ca résoudrait pas le problème ?
edit : pas sur de la syntaxe mais l'idée est d'ajouter un / à la fin s'il n'y a pas de point (à l'exception du nom de domaine)
Modérateurs: WebRankInfo, e-kiwi, OTP, fandecine, Patrice A.
8 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- [PHP] Regex ?
- Problème de regex
- [PHP-Regex] Capture d'un nom de dossier
- Problème d'écriture de regex
- [Regex] modifier une regex existante
- Problème de boucle (regex)
- Aide pour script PHP (notamment Regex), récompensé
- [Regex] Problème url cliquable
- Problème avec une regex :(
- On peut mettre une fonction php dans un pattern de regex ?
- probleme entre index.php centre.php et news.php
- AJax, php et xml, probleme de variable php
- [ Script PHP ] Problème de connexion (session php)
- Regex [a-zA-Z0-9_]
- regex
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité





le forum