URL Rewriting
Résolu
Utilisateur anonyme
-
AssassinTourist Messages postés 6029 Date d'inscription Statut Contributeur Dernière intervention -
AssassinTourist Messages postés 6029 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans le cadre d'une URL rewriting, je souhaite remplacer dans une variable $var (par exemple) certains caractères en PHP comme ceci :
" " --> "-"
"!" "?" "," "." "'" """ --> supprimer
"é" --> "e" (enfin supprimer les accents des e, a, o, u, i)
Et supprimer les majuscules.
Exemple concret :
J'ai $var="J'aime les frites, mais avec du ketchup ! Et toi étranger ?.."
donnerait :
$var="jaime-les-frites-mais-avec-du-ketchup--et-toi-etranger" (on ne fait pas de tiret à la fin si possible car il n'y a rien après)
J'ai essayé avec str_replace mais vraiment je galère.
Pourrais-je avoir votre aide svp ?
Merci d'avance !
Dans le cadre d'une URL rewriting, je souhaite remplacer dans une variable $var (par exemple) certains caractères en PHP comme ceci :
" " --> "-"
"!" "?" "," "." "'" """ --> supprimer
"é" --> "e" (enfin supprimer les accents des e, a, o, u, i)
Et supprimer les majuscules.
Exemple concret :
J'ai $var="J'aime les frites, mais avec du ketchup ! Et toi étranger ?.."
donnerait :
$var="jaime-les-frites-mais-avec-du-ketchup--et-toi-etranger" (on ne fait pas de tiret à la fin si possible car il n'y a rien après)
J'ai essayé avec str_replace mais vraiment je galère.
Pourrais-je avoir votre aide svp ?
Merci d'avance !
5 réponses
Le preg_match, je ne maîtrise pas assez, parce que ça prend les regexp et même si c'est un outil formidable, je m'y plante une fois sur deux. Je laisse quelqu'un d'autre te répondre avec ça.
Je pense que tu dois faire par étape et je ne sais pas si php aime bien mettre la même variable sur la même ligne (cela dépend, mais j'ai vu des cas où ça ne fonctionnait pas) Je vais te faire le truc le plus facile à mettre en place :
Les accents :
https://www.commentcamarche.net/faq/8063-supprimer-les-accents-avec-php
La ponctuation :
$tab_ponctuation = array("!", "?", ",", ".", "'", """);
$noponctuation = str_replace($tab_ponctuation, "", $var);
Les espaces :
$no_espace = str_replace(" ", "-", $var);
Je pense que tu dois faire par étape et je ne sais pas si php aime bien mettre la même variable sur la même ligne (cela dépend, mais j'ai vu des cas où ça ne fonctionnait pas) Je vais te faire le truc le plus facile à mettre en place :
Les accents :
https://www.commentcamarche.net/faq/8063-supprimer-les-accents-avec-php
La ponctuation :
$tab_ponctuation = array("!", "?", ",", ".", "'", """);
$noponctuation = str_replace($tab_ponctuation, "", $var);
Les espaces :
$no_espace = str_replace(" ", "-", $var);
Je viens de trouver http://cubiq.org/the-perfect-php-clean-url-generator et je dois dire que cela marche du tonnerre ! Merci pour votre aide !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question