¿Cómo convertir caracteres especiales a caracteres normales?

Estoy tratando de convertir personajes como:

ë, ä, ï, ö, etc. 

Para caracteres normales como:

 e, a, i, o, etc. 

¿Cuál es la mejor manera de hacer esto? He intentado muchas cosas, como preg_replace y str_replace.

¿Alguien me puede ayudar?

– EDITAR –

Lo que probé fue:

 $ts = array("[À-Å]","Æ","Ç","[È-Ë]","/[Ì-Ï]/","/Ð/","/Ñ/","/[Ò-ÖØ]/","/×/","/[Ù-Ü]/","/[Ý-ß]/","/[à-å]/","/æ/","/ç/","/[è-ë]/","/[ì-ï]/","/ð/","/ñ/","/[ò-öø]/","/÷/","/[ù-ü]/","/[ý-ÿ]/"); $tn = array("A","AE","C","E","I","D","N","O","X","U","Y","a","ae","c","e","i","d","n","o","x","u","y"); $title = preg_replace($ts, $tn, $text); 

prueba esto … funciona para mí.

 iconv('utf-8', 'ascii//TRANSLIT', $text); 

me gusta la respuesta de Stewies, pero para completar esto, esto funciona para mí.

 preg_replace("/&([az])[az]+;/i", "$1", htmlentities($foo));