Fonctions de suppression (1)
public function strip_accent($string)
{
$patterns = array();
$replacements = array();
$patterns[0] = '/[\xe8-\xeb]/';
$patterns[1] = '/[\xc8-\xcb]/';
$patterns[2] = '/[\xc0-\xc5]/';
$patterns[3] = '/[\xe0-\xe5]/';
$patterns[4] = '/[\xf2-\xf6\xf8]/';
$patterns[5] = '/[\xd2-\xd6\xd8]/';
$patterns[6] = '/[\xcc-\xcf]/';
$patterns[7] = '/[\xec-\xef]/';
$patterns[8] = '/[\xd9-\xdc]/';
$patterns[9] = '/[\xf9-\xfc]/';
$patterns[10] = '/[\xff]/';
$patterns[11] = '/[\xdd]/';
$patterns[12] = '/[\xe7]/';
$patterns[13] = '/[\xc7]/';
$patterns[14] = '/[\xf1]/';
$patterns[15] = '/[\xd1]/';
$replacements[0] = 'e';
$replacements[1] = 'E';
$replacements[2] = 'A';
$replacements[3] = 'a';
$replacements[4] = 'o';
$replacements[5] = 'O';
$replacements[6] = 'I';
$replacements[7] = 'i';
$replacements[8] = 'U';
$replacements[9] = 'u';
$replacements[10] = 'y';
$replacements[11] = 'Y';
$replacements[12] = 'c';
$replacements[13] = 'C';
$replacements[14] = 'n';
$replacements[15] = 'N';
$string = utf8_decode($string);
$string = preg_replace($patterns, $replacements, $string);
return $string;
}
A utiliser pour les encodages de type ISO-8859-1 qui codent les caractères spéciaux (comme les accents) sur 2 octets.
Fonctions de suppression (2)
function stripAccents($string){
return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
}
Remarque :
Lorsque la page est encodée en UTF-8, alors les caractères spéciaux (comme les accents) se composent de deux bits. Ainsi :
echo strlen(« é »);
Affichera « 2 ».
Si on encode la page en UTF-8 sans Bom (ANSI as UTF-8, sous Notepad++), la même commande affichera « 1 ».