io avrei fatto così:
function UPFirst($string) {
$string = Ucwords(str_replace("'", " ' ", strtolower($string)));
return str_replace(" ' ", "'", $string);
}
$str = "aNTOnella d'elIA";
echo UPFirst($str); ->
--------------------------
Antonella D'Elia
Non è più rapido?