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

php, string, title-case, ucfirst

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!

Problem

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?

Original source