<?php
function soundex2( $sIn ) {
if ( $sIn === '' ) return ' ';
$sIn = strtoupper( $sIn );
$sIn = strtr( $sIn, 'ÂÄÀÇÈÉÊËŒÎÏÔÖÙÛÜ', 'AAASEEEEEIIOOUUU' );
$sIn = preg_replace( '`[^A-Z]`', '', $sIn );
if ( strlen( $sIn ) === 1 ) return $sIn . ' ';
$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 );
$sIn = preg_replace( '`(?<!^)[EIOU]`', 'A', $sIn );
$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 );
$sIn = preg_replace( '`(?<![CS])H`', '', $sIn );
$sIn = preg_replace( '`(?<!A)Y`', '', $sIn );
$sIn = preg_replace( '`[ATDS]$`', '', $sIn );
$sIn = preg_replace( '`(?!^)A`', '', $sIn );
$sIn = preg_replace( '`(.)\1`', '$1', $sIn );
return substr( $sIn . ' ', 0, 4);
}
?>