Yo creo que la lentitud es por el servidor donde tienes la página, unido a que las expresiones regulares tampoco es que sean demasiado rápidas, pero una diferencia tan grande tiene que ser problema del servidor.
De todos modos, creo que podrías optimizar la función de la siguiente forma:
Código PHP:
function diccionario ($letra)
{
if ($code = @file('h*tp://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=' . utf8_encode($letra))) {
return preg_match_all("/<span class=\"eAcep\">(.*?)<\/span>/i",implode(" ",$code),$acep);
}
else
{
return 1;
}
}
Saludos
PD: Tuve que cambiar la dirección porque no me deja poner enlaces.