phpstringtitle-caseucfirst

Make all words lowercase and the first letter of each word uppercase


I have a string with improper capitalization scattered like below:

$str = "tHis iS a StRinG thAt NeEds ProPer CapiTilization";
$newStr = ucfirst($str);
echo $newStr;

How would I be able to capitalize the first letter of each word and lower case the incorrectly capitalized letters? I need the string to be fully title case.

I know I can change to lower and then use ucwords() but is there a shorter way to do this?


Solution

  • How would I be able to capitalize the first letter of each word and lower case the incorrectly capitalized letters?

    ucwords() will capitilize the first letter of each word. You can combine it with strtolower() to first lowercase everything.

    For example:

    ucwords(strtolower('HELLO WORLD!')); // Hello World!