Quitar acentos y caracteres especiales en PHP

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
‘/à/’ => [...]

Switch to our mobile site