Quitar acentos con PHP
En muchos proyectos necesitaremos controlar las cadenas de texto, por ejemplo, quitando acentos a las vocales.
Esto es una necesidad muy común, sobre todo a la hora de «limpiar» cadenas de texto.
Con la siguiente función de PHP podrás buscar y reemplazar las vocales con acento por las mismas vocales sin acento. Además, este método tiene ne cuenta mayúsculas y minúsculas.
function remove_accents($str){
$to_replace = array(
array(
array('Á', 'À', 'Â', 'Ä', 'á', 'à', 'ä', 'â'),
array('A', 'A', 'A', 'A', 'a', 'a', 'a', 'a')
),
array(
array('É', 'È', 'Ê', 'Ë', 'é', 'è', 'ë', 'ê'),
array('E', 'E', 'E', 'E', 'e', 'e', 'e', 'e')
),
array(
array('Í', 'Ì', 'Ï', 'Î', 'í', 'ì', 'ï', 'î'),
array('I', 'I', 'I', 'I', 'i', 'i', 'i', 'i'),
),
array(
array('Ó', 'Ò', 'Ö', 'Ô', 'ó', 'ò', 'ö', 'ô'),
array('O', 'O', 'O', 'O', 'o', 'o', 'o', 'o'),
),
array(
array('Ú', 'Ù', 'Û', 'Ü', 'ú', 'ù', 'ü', 'û'),
array('U', 'U', 'U', 'U', 'u', 'u', 'u', 'u'),
),
);
foreach($to_replace as $from_to){
$str = str_replace($from_to[0], $from_to[1], $str);
}
return $str;
}
echo remove_accents("ÁÉíÓú"); // AEiOu
El funcionamiento es muy simple, utilizando la función nativa de PHP str_replace.