Page 1 sur 1

Stripped text

Posté : 22 mars 2008, 17:11
par Flashball
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!

Posté : 25 mars 2008, 15:25
par Maitrepylos
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);


Posté : 25 mars 2008, 16:41
par Flashball
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!