Originariamente inviato da piero.mac
dovrebbe funzionare....
non so con l'ultima di PHP ma non è possibile cambiare un carattere in quel modo per una serie di motivi (1 tra tanti, multibytes)
codice:
function lcfirst($str){return strtolower($str{0}).substr($str, 1);}
exit(lcfirst("Aveva una casetta"));
P.S. che poi a pensarci bene, con multibytes in pole position anche questa fa bei casini 
codice:
function lcfirst($str){return ord(substr($str, 0, 1)) < 128 ? strtolower($str{0}).substr($str, 1) : $str;}