Quitar acentos y eñes con PHP
Cuando trabajamos con cadenas con acentos, eñes y otros símbolos no compatibles en ciertos entornos, en ocasiones, hemos de sustituirlas por sus equivalentes para poder ofrecer el resultado deseado (por ejemplo, sustituir á por a).
En PHP este problema es bastante frecuente y encima, se ve agravado porque funciones como strstr tienen problemas cuando trabajamos con codificaciones como UTF-8. Os traigo una función que os permitirá atajar este problema, os la dejo a continuación:
<?php function normaliza ($cadena){ $originales = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ ßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ'; $modificadas = 'aaaaaaaceeeeiiiidnoooooouuuuy bsaaaaaaaceeeeiiiidnoooooouuuyybyRr'; $cadena = utf8_decode($cadena); $cadena = strtr($cadena, utf8_decode($originales), $modificadas); $cadena = strtolower($cadena); return utf8_encode($cadena); } ?>
Si queréis agregar más caracteres a convertir, sólo tenéis que introducirlos al final de los vectores: originales y modificadas; en su misma posición.