Quitar acentos con PHP

Quitar acentos con PHP

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.

Leave a reply