$voy) $posMot1=strpos($strIn, $mot1); while ($posMot1!==false) { $lettreAV=$strIn[$posMot1-1]; $lettreAP=$strIn[$posMot1+strlen($mot1)]; //echo "Lettre AV=$lettreAV
"; //echo "Lettre AP=$lettreAP
"; if ( ( $rule==0 && !in_array($lettreAV, $Voyelle) ) || ( $rule==1 && !in_array($lettreAP, $Voyelle) ) || ( $rule==2 && !in_array($lettreAV, $Voyelle) && !in_array($lettreAP, $Voyelle) )) $strIn=substr($strIn,0,$posMot1) . $mot2 . substr($strIn,$posMot1+strlen($mot1),strlen($strIn)); //echo "Le Mot devient : $strIn
"; $posMot1=@strpos($strIn, $mot1, $posMot1+strlen($mot1)); } return $strIn; } //echo "Erreur : $mot2 contient $mot1 !
"; return $strIn; } /** Retourne le phonex d'un mot **/ function phonex($strIn) { if ($strIn=='') return 0.0; $tabSonAIA=array('aina', 'eina', 'aima', 'eima'); $tabSonAIE=array('ainr', 'eine', 'aime', 'eime'); $tabSonAII=array('aini', 'eini', 'aimi', 'eimi'); $tabSonAIO=array('aino', 'eino', 'aimo', 'eimo'); $tabSonAIU=array('ainu', 'einu', 'aimu', 'eimu'); $tabCarPhon=array('1', '2', '3', '4', '5', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'n', 'o', 'r', 's', 't', 'u', 'w', 'x', 'y', 'z'); /** On traite tout en minuscule **/ $strIn=strtolower($strIn); /** On remplace les 'Y' par des 'I' **/ $strIn=str_replace('y', 'i', $strIn); /** On supprime les accents **/ $strIn=trimAccent($strIn); /** On retire les 'H' muets sauf ceux précédés par 'C' ou 'S' **/ $strIn = preg_replace ('/(?4; $i++) { $strIn=str_replace($tabSonAIA[$i], 'yna', $strIn); $strIn=str_replace($tabSonAIE[$i], 'yne', $strIn); $strIn=str_replace($tabSonAII[$i], 'yni', $strIn); $strIn=str_replace($tabSonAIO[$i], 'yno', $strIn); $strIn=str_replace($tabSonAIU[$i], 'ynu', $strIn); } /** Remplacement des groupes de 3 lettres **/ $strIn=str_replace('eau', 'o', $strIn); $strIn=str_replace('oua', '2', $strIn); $strIn=str_replace('ein', '4', $strIn); $strIn=str_replace('ain', '4', $strIn); /** Remplacement du son 'é' **/ $strIn=str_replace('ai', 'y', $strIn); $strIn=str_replace('ei', 'y', $strIn); $strIn=str_replace('er', 'yr', $strIn); $strIn=str_replace('ess', 'yss', $strIn); $strIn=str_replace('et', 'yt', $strIn); $strIn=str_replace('ez', 'yz', $strIn); /** Remplacement des groupes de 2 lettres sauf si voyelle ou son (1 à 4) AVANT **/ $strIn=str_replace_except_voy('an', '1', $strIn, BEFORE); $strIn=str_replace_except_voy('am', '1', $strIn, BEFORE); $strIn=str_replace_except_voy('en', '1', $strIn, BEFORE); $strIn=str_replace_except_voy('em', '1', $strIn, BEFORE); $strIn=str_replace_except_voy('in', '4', $strIn, BEFORE); /** Remplacement du son 'SCH' **/ $strIn=str_replace('sch', '5', $strIn); /** Remplacement du 'S' sauf si voyelle ou son (1 à 4) avant ou après **/ $strIn=str_replace_except_voy('in', '4', $strIn, BOTH); /** Remplacement de groupe de 2 lettres diverses **/ $strIn=str_replace('oe', 'e', $strIn); $strIn=str_replace('eu', 'e', $strIn); $strIn=str_replace('au', 'o', $strIn); $strIn=str_replace('oi', '2', $strIn); $strIn=str_replace('oy', '2', $strIn); $strIn=str_replace('ou', '3', $strIn); $strIn=str_replace('ch', '5', $strIn); $strIn=str_replace('sh', '5', $strIn); $strIn=str_replace('ss', 's', $strIn); $strIn=str_replace('sc', 's', $strIn); /** Remplacement du 'C' par 'S' s'il est suivi d'un 'E' ou d'un 'I' **/ $strIn=str_replace('ce', 'se', $strIn); $strIn=str_replace('ci', 'si', $strIn); /** Remplacement divers **/ $strIn=str_replace('c', 'k', $strIn); $strIn=str_replace('q', 'k', $strIn); $strIn=str_replace('qu', 'k', $strIn); $strIn=str_replace('ga', 'ka', $strIn); $strIn=str_replace('go', 'ko', $strIn); $strIn=str_replace('gu', 'ku', $strIn); $strIn=str_replace('gy', 'ky', $strIn); $strIn=str_replace('g2', 'k2', $strIn); $strIn=str_replace('g1', 'k1', $strIn); $strIn=str_replace('g3', 'k3', $strIn); $strIn=str_replace('a', 'o', $strIn); $strIn=str_replace('d', 't', $strIn); $strIn=str_replace('p', 't', $strIn); $strIn=str_replace('j', 'g', $strIn); $strIn=str_replace('b', 'f', $strIn); $strIn=str_replace('v', 'f', $strIn); $strIn=str_replace('m', 'n', $strIn); /** Supression des lettres dupliquées **/ $let=$strIn[0]; $strIn2=$let; for ($i=1; $i0; $j--) $result+=$sout[$j]*pow($j-1,10); return $result; } ?>