knowj, thank you for your reply but this is not what I am looking for.
If I use a combination of ucfirst(); and strtolower(); all first characters will be come uppercase. I need a function which changes all characters to lowercase but leaves the first character of each word as it is.
I need it because some users are absessed with writing everything in caps lock.