REGEX Transformation d'url.

  • Auteur de la discussion Auteur de la discussion mustru
  • Date de début Date de début
WRInaute discret
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.
 
WRInaute passionné
mustru a dit:
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:
$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
 
WRInaute passionné
Code:
$value = 'http://www.bestnet.fr';
$value = preg_replace('#http://www\.(.+)\.(?:[a-z]{2,3})#U', '$1', $value);

Je regarde pour les autres options possibles
 
WRInaute passionné
Ce script prend tous les case de figure :

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


Code:
$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);
}
 
Discussions similaires
Haut