- $convIn = array( 'GUI', 'GUE', 'GA', 'GO', 'GU', 'CA', 'CO', 'CU', 'Q', 'CC', 'CK' );
- $convOut = array( 'KI', 'KE', 'KA', 'KO', 'K', 'KA', 'KO', 'KU', 'K', 'K', 'K' );
- $sIn = str_replace( $convIn, $convOut, $sIn );
- // on remplace les voyelles sauf le Y et sauf la première par A
- $sIn = preg_replace( '`(?<!^)[EIOU]`', 'A', $sIn );
- // on remplace les préfixes puis on conserve la première lettre
- // et on fait les remplacements complémentaires
- $convIn = array( '`^KN`', '`^(PH|PF)`', '`^MAC`', '`^SCH`', '`^ASA`', '`(?<!^)KN`', '`(?<!^)(PH|PF)`', '`(?<!^)MAC`', '`(?<!^)SCH`', '`(?<!^)ASA`' );
- $convOut = array( 'NN', 'FF', 'MCC', 'SSS', 'AZA', 'NN', 'FF', 'MCC', 'SSS', 'AZA' );
- $sIn = preg_replace( $convIn, $convOut, $sIn );
- // suppression des H sauf CH ou SH
- $sIn = preg_replace( '`(?<![CS])H`', '', $sIn );
- // suppression des Y sauf précédés d'un A
- $sIn = preg_replace( '`(?<!A)Y`', '', $sIn );
- // on supprime les terminaisons A, T, D, S
- $sIn = preg_replace( '`[ATDS]$`', '', $sIn );
- // suppression de tous les A sauf en tête
- $sIn = preg_replace( '`(?!^)A`', '', $sIn );
- // on supprime les lettres répétitives
- $sIn = preg_replace( '`(.)\1`u', '$1', $sIn );
- // on ne retient que 4 caractères ou on complète avec des blancs
+ $sIn = str_replace( $convGuIn, $convGuOut, $sIn );
+ // on supprime les lettres répétitives
+ $sIn = preg_replace( '`(.)\1`', '$1', $sIn );
+ // on réinterprète les voyelles
+ $sIn = preg_replace( $convVIn, $convVOut, $sIn);
+ // on supprime les terminaisons T, D, S, X (et le L qui précède si existe)
+ $sIn = preg_replace( '`L?[TDSX]$`', '', $sIn );
+ // on supprime les E, A et Y qui ne sont pas en première position
+ $sIn = preg_replace( '`(?!^)Y([^AEOU]|$)`', '\1', $sIn);
+ $sIn = preg_replace( '`(?!^)[EA]`', '', $sIn);