"uctfirst" retourne un string donc syntaxiquement c'est bon mais après :
string ucfirst ( string str ) ucfirst retourne la chaîne str après avoir remplacé le premier caractère par sa majuscule, si le premier caractère est alphabétique.
Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é , è ou à ) ne seront pas converties.Le problème pourrait juste venir de la dernière phrase (caractères spéciaux à priori)...