Gracias por la solucion, esta bastante bien.
La unica pega es al utilizarla junto a ucwords, que pone en mayusculas la primera letra de cada palabra. Si uso strtr me convierte en mayuscula todo caracter que le coloque, y no solo la primera de cada palabra... De todas formas es un problema menor.
Yo tampoco lo sabia hasta que lo utilice, y luego buscando en
www.php.net poner esto:
Nótese que las letras son definidas por la localización actual (el "locale" actual). Esto quiere decir que, por ejemplo, en el locale por defecto ("C"), los caracteres como la Ñ no serán convertidos.
Asi que lo que hecho al final es usar la funcion setlocale
setlocale(LC_CTYPE, "es_ES");