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.