Olvidé una cosa que te ahorrará mucho código:
La función str_replace admite en los dos primeros parámetros arrays, de modo que los reemplaza por parejas.
No tendrías más que emparejar los reemplazos en sendos arrays y hacer un único str_replace, algo así:
Código:
function replace($txt){
$old = array("á", "é"...);
$new = array("á", "é"...);
return str_replace($old, $new, $txt);
}
Saludos!