par
Henri » 13 juin 2006, 11:50
En utilisant les fonctions régulières, tu peux transformer les lettres accentuées de ton texte (ou d'une copie de ton texte) en lettres non accentuées. Par exemple, la 1ère ligne indique qu'il faut remplacer tous les à, ä et â par a. Au final, on supprime toutes les majuscules.
$texte = eregi_replace ("[àäâ]", "a", $texte);
$texte = eregi_replace ("ç", "c", $texte);
$texte = eregi_replace ("[éèêë]", "e", $texte);
$texte = eregi_replace ("[ïî]", "i", $texte);
$texte = eregi_replace ("[öô]", "o", $texte);
$texte = eregi_replace ("[üûù]", "u", $texte);
$texte = strtolower($texte);
Note : Il y a peut-être une syntaxe plus compacte qui permet de tout faire en une seule instruction, mais je trouve que les expressions régulières ont vite tendance à devenir illisibles et donc inmodifiables (avis strictement personnel).
Après, tu n'as plus qu'à utiliser ton code foreach ...
PS : en PHP5, la fonction str_replace indique combien il y a eu de remplacements effectués.
En faisant
$dummmy = str_ireplace (array("a", "à", "ä", "â"), "", $texte, $count);
Tu dois pouvoir récupérer le nombre de remplacements dans $count, donc le nombre de a, à, ä, ... mais je ne l'ai pas testé.
En utilisant les fonctions régulières, tu peux transformer les lettres accentuées de ton texte (ou d'une copie de ton texte) en lettres non accentuées. Par exemple, la 1ère ligne indique qu'il faut remplacer tous les à, ä et â par a. Au final, on supprime toutes les majuscules.
[php]
$texte = eregi_replace ("[àäâ]", "a", $texte);
$texte = eregi_replace ("ç", "c", $texte);
$texte = eregi_replace ("[éèêë]", "e", $texte);
$texte = eregi_replace ("[ïî]", "i", $texte);
$texte = eregi_replace ("[öô]", "o", $texte);
$texte = eregi_replace ("[üûù]", "u", $texte);
$texte = strtolower($texte);
[/php]
Note : Il y a peut-être une syntaxe plus compacte qui permet de tout faire en une seule instruction, mais je trouve que les expressions régulières ont vite tendance à devenir illisibles et donc inmodifiables (avis strictement personnel).
Après, tu n'as plus qu'à utiliser ton code foreach ...
PS : en PHP5, la fonction str_replace indique combien il y a eu de remplacements effectués.
En faisant
[php]
$dummmy = str_ireplace (array("a", "à", "ä", "â"), "", $texte, $count);
[/php]
Tu dois pouvoir récupérer le nombre de remplacements dans $count, donc le nombre de a, à, ä, ... mais je ne l'ai pas testé.