La función en principio está pensada para convertir una cadena – el título de un post por ejemplo – en una URL amigable o URL friendly.
Por ejemplo. La cadena Hola mundo! (Continuación) al pasarla por la función quedaría convertida en hola-mundo-(continuacion)
Me encontré con varias funciones por ahí que hacían lo mismo pero me dieron muchos problemas porque trabajaban directamente con caracteres en vez de con el código del carácter.
Por otro lado adaptar la función para que solo elimine los acentos es inmediato por eso lo he puesto en el título del post. Por eso y porque ahora en un proyecto vuelvo a ella para reutilizarla en ese sentido.
Probarla y si os gusta y os funciona podéis dejarme un comentario para que lo sepa.
function desaccent($string)
{
$string = strtolower($string) ;$string = str_replace(”?”, “”, $string) ;
$string = str_replace(”¿”, “”, $string) ;
$string = str_replace(”!”, “”, $string) ;
$string = str_replace(”*”, “”, $string) ;
$string = str_replace(”,”, “”, $string) ;
return strtr(utf8_decode($string),
“\xe1\xc1\xe0\xc0\xe2\xc2\xe4\xc4\xe3\xc3\xe5\xc5″.
“\xaa\xe7\xc7\xe9\xc9\xe8\xc8\xea\xca\xeb\xcb\xed”.
“\xcd\xec\xcc\xee\xce\xef\xcf\xf1\xd1\xf3\xd3\xf2″.
“\xd2\xf4\xd4\xf6\xd6\xf5\xd5\x8\xd8\xba\xf0\xfa\xda”.
“\xf9\xd9\xfb\xdb\xfc\xdc\xfd\xdd\xff\xe6\xc6\xdf\xf8″.
” .’”,
“aAaAaAaAaAaAacCeEeEeEeEiIiIiIiInNo”.
“OoOoOoOoOoOoouUuUuUuUyYyaAso—”);
}