Si la cuestion es la eficiencia, la solucion mas eficiente (es decir que consume menos memoria y se ejecuta mas rapidamente) es esta:
Código:
$texto = strtr($texto, 'áéíóuÁÉÍÓÚ' , 'aeiouAEIOU');
Una apaño para el problema del utf8 es hacer lo siguiente:
Código:
$texto = utf8_encode(strtr(utf8_decode($texto), 'áéíóuÁÉÍÓÚ' , 'aeiouAEIOU')));
Aunque una solucion "mejor" (segun se mire) podria ser usar simplemente str_replace, pero muy importante
hay que guardar el script en php en formato UTF-8, de ese modo los caracteres acentuados se guardaran
correctamente codificados ya en UTF8 en el propio codigo fuente. Para esto hay que usar un editor de texto
que permita guardar archivos en esta codificacion.
Saludos