REGEX Transformation d'url.


mustru
WRInaute discret
WRInaute discret
 
Messages: 222
Inscription: 10 Juil 2006

REGEX Transformation d'url.

Message le Sam Mai 17, 2008 10:44

Bonjour,

Je suis vraiment un novice en REGEX et malgré toute la bonne volonté que j'essai d'avoir je n'arrive pas a faire une chose que je pense pourtant simple :

- Transformer une URL de telle sorte :

Exemple :
depart : http://www.bestnet.fr
arrivé : bestnet

Je pensai le faire avec ereg_replace, mais je n'y arrive vraiment pas, un peu d'aide serait vraiment la bienvenue.

Merci d'avance.


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Re: REGEX Transformation d'url.

Message le Sam Mai 17, 2008 11:20

mustru a écrit:Bonjour,

Je suis vraiment un novice en REGEX et malgré toute la bonne volonté que j'essai d'avoir je n'arrive pas a faire une chose que je pense pourtant simple :

- Transformer une URL de telle sorte :

Exemple :
depart : http://www.bestnet.fr
arrivé : bestnet

Je pensai le faire avec ereg_replace, mais je n'y arrive vraiment pas, un peu d'aide serait vraiment la bienvenue.

Merci d'avance.


Code: Tout sélectionner
$value = 'http://www.bestnet.fr';
$value = parse_url($value, PHP_URL_HOST); // Au cas ou l'url en question va plus loin que le domaine... (http://www.bestnet.fr/dossier/page.html)
preg_replace('#http://(?:www\.)?([^.]+)\.(?:[a-z]{2,3})#U', '$1', $value); // Avec ou sans www


mustru
WRInaute discret
WRInaute discret
 
Messages: 222
Inscription: 10 Juil 2006

Message le Sam Mai 17, 2008 11:28

Merci beaucoup mais cela me renvoi : "www.bestnet.fr" et non "bestnet"...


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Sam Mai 17, 2008 11:30

oui j'ai été trop vite...
attend


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Sam Mai 17, 2008 11:36

Code: Tout sélectionner
$value = 'http://www.bestnet.fr';
$value = preg_replace('#http://www\.(.+)\.(?:[a-z]{2,3})#U', '$1', $value);


Je regarde pour les autres options possibles


mustru
WRInaute discret
WRInaute discret
 
Messages: 222
Inscription: 10 Juil 2006

Message le Sam Mai 17, 2008 11:42

Merci beaucoup ! Ça marche à merveille.


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Sam Mai 17, 2008 11:58

Ce script prend tous les case de figure :

avec ou sans www.
avec ou sans page ou dossier interne


Code: Tout sélectionner
$uri = parse_url($value, PHP_URL_HOST);
if (preg_match('#www.#U', $uri)) {
   $value = preg_replace('#www\.(.+)\.[a-z]{2,3}#U', '$1', $uri);
} else {
   $value = preg_replace('#(.+)\.[a-z]{2,3}#U', '$1', $uri);
}


mustru
WRInaute discret
WRInaute discret
 
Messages: 222
Inscription: 10 Juil 2006

Message le Sam Mai 17, 2008 12:02

Merci merci merci ! très efficace !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités