Stripped text

Eléphant du PHP | 66 Messages

22 mars 2008, 17:11

Bonjour,

J'ai récupéré cette petite fonction très utile pour transformer un libellé en libellé "URL compatible"

Code : Tout sélectionner

$text = strtolower($text); // strip all non word chars $text = preg_replace('/\W/', ' ', $text); // replace all white space sections with a dash $text = preg_replace('/\ +/', '-', $text); // trim dashes $text = preg_replace('/\-$/', '', $text); $text = preg_replace('/^\-/', '', $text); return $text;
Je maitrise plutôt mal les chaines regex :oops: , qq pourrait-il m'aider à compléter ce code pour que les caractères accentués soient transformés en caractères non accentués?

ex.: "Hey, voici un très beau libellé!" -> "hey-voici-un-tres-beau-libelle"

Merci!

Mammouth du PHP | 1029 Messages

25 mars 2008, 15:25

bonjour,

voici
$remplace = array(
'à'=>'a',
'á'=>'a',
'â'=>'a',
'ã'=>'a',
'ä'=>'a',
'å'=>'a',
'ò'=>'o',
'ó'=>'o',
'ô'=>'o',
'õ'=>'o',
'ö'=>'o',
'è'=>'e',
'é'=>'e',
'ê'=>'e',
'ë'=>'e',
'ì'=>'i',
'í'=>'i',
'î'=>'i',
'ï'=>'i',
'ù'=>'u',
'ú'=>'u',
'û'=>'u',
'ü'=>'u',
'ÿ'=>'y',
'ñ'=>'n',
'ç'=>'c',
'ø'=>'0'
);
$text = strtr($text,$remplace);

L'expérience est la somme de toutes nos erreurs.

Eléphant du PHP | 66 Messages

25 mars 2008, 16:41

ok, merci pour cette solution, peut-être pas la plus élégante, mais elle marche... :roll:

Si qq connait une version utilisant les expressions régulières, je suis preneur!