regex pour rewrit accents et cactères interdits dans un url

WRInaute occasionnel
Bonjour,

Connaissez vous le regex utilisé sur dotclear qui permet pour le rewrinting de changer un terme comme celui-ci (ou un autre regex..)

Google Code Jam 2006 : c'est parti !

Par ceci

google-code-jam-2006-c-est-parti

-Donc apparement, il supprime(ou remplace par rien) les carctères interdits dans un url comme @*%&/ etc....
-Le majuscule passe en minuscule
- les espaces sont remplacés par un -
Etc...

Existe t'il un regex qui fasse tout ça (si seulement vous me répondrez peut-être... rire)

D'avance merci de vos tuyaux
Cordialement
Yule
 
WRInaute passionné
En php ça donnerait ça :
Code:
$phrase="Google Code Jam 2006 : c'est parti";
$regex=preg_replace('!\'| !','-',htmlentities(strtolower($phrase)));
echo $regex;
 
WRInaute discret
Si je me souviens bien, DC remplace également les caractères accentuées par leur version sans accent.
 
WRInaute occasionnel
obi a dit:
Si je me souviens bien, DC remplace également les caractères accentuées par leur version sans accent.

Merci David mais comme l'a dit obi.. il remplace (DC) les carcatères accentués

A+
Yule
 
WRInaute discret
Perso j'utilise ça:

Code:
function asHtmlId($txt) {
 //switch accents to simpler text
 $txt=strtr($txt,"éèëêàäâùüûöôïïüûç","eeeeaaauuuooiiuuc");
 //replace non alpha-numerical chars sequences by -
$txt =  trim(preg_replace('@([^a-z|A-Z|0-9|-])+@', '-', strtolower($txt)), "-");
return preg_replace('@([-])+@', '-', $txt); //remove dashes nplications
}
 
Discussions similaires
Haut