Lex | A noter cette fonction qui est plus précise, car elle prend en compte la prononciation française :
Code :
- function soundex_fr($chaine){
- // algorithme original :
- //http://www.chez.com/algor/soundex/soundex.htm
- if (!is_string($chaine) || strlen($chaine) == 0){ return "";}
- // suppression des espaces initiaux
- $chaine = trim($chaine);
- // mise en minuscule
- $chaine = strtolower($chaine);
- // suppression des doublons
- $chaine = preg_replace("/(.)\\1/", "\\1", $chaine);
- // garder la premiere lettre
- $p = $chaine[0];
- // supprimer les lettres A, E, I, O, U, Y, H et W
- $chaine = ereg_replace("aeiouyhw", "", $chaine);
- // remplacer les lettres restantes par leur chiffre
- //print $maire;
- $chaine = $p.strtr("1122233455677888999", "bpckqdtlmnrgjxzsfv", $chaine);
- if (strlen($chaine) < 4){
- str_pad($chaine, 4-strlen($chaine), " " );
- } else {
- $chaine = substr($chaine, 0, 4);
- }
- return $chaine;
- }
|
Message édité par Lex le 17-08-2004 à 15:19:05
|