blog personal
Archivo de Mayo, 2008
Quitar acentos y caracteres especiales en PHP
26 May
Por más que busqué no encontré funciones que quitaran los acentos eficientemente. Las que funcionaban medianamente bien, fallaban cuando los caracteres eran UTF-8, por lo que me puse en campaña, y llegué a esto:
function quitarAcentos($text) { $text = htmlentities($text, ENT_QUOTES, 'UTF-8'); $text = strtolower($text); $patron = array ( // Espacios, puntos y comas por guion '/[\., ]+/' => '-', // Vocales '/à/' => 'a', '/è/' => 'e', '/ì/' => 'i', '/ò/' => 'o', '/ù/' => 'u', '/á/' => 'a', '/é/' => 'e', '/í/' => 'i', '/ó/' => 'o', '/ú/' => 'u', '/â/' => 'a', '/ê/' => 'e', '/î/' => 'i', '/ô/' => 'o', '/û/' => 'u', '/ã/' => 'a', '/&etilde;/' => 'e', '/ĩ/' => 'i', '/õ/' => 'o', '/ũ/' => 'u', '/ä/' => 'a', '/ë/' => 'e', '/ï/' => 'i', '/ö/' => 'o', '/ü/' => 'u', '/ä/' => 'a', '/ë/' => 'e', '/ï/' => 'i', '/ö/' => 'o', '/ü/' => 'u', // Otras letras y caracteres especiales '/å/' => 'a', '/ñ/' => 'n', // Agregar aqui mas caracteres si es necesario ); $text = preg_replace(array_keys($patron),array_values($patron),$text); return $text; }
Cualquier comentario es bienvenido.
