Can someone point me in the direction of a function/library/tutorial on normalising and formatting user-inputted names so that they have the correct capitalisation etc?
This will work for MOST situations I'm aware of: <? $name = ucwords(strtolower($name)); ?>
BUT, this will not work in the following cases:
1. where a word will NOT want a first letter capital (like "Chris de Vidal" off this list)
2. a name may require mixed case (for Mc and Mac, like Jeff McKeon off this list)
3. where there are hyphened names (like Mary-Kate Smith, and Fred Smith-Jones)
4. a name contains an apostrophe (like O'Connor)
5. Mackenzie (and some others) are probably exceptions to case #2.
5. there are probably many more cases which I don't see regularly, or have forgotten.
There's a reasonable example on http://www.php.net/ucfirst by Lee Benson, but it doesn't handle case #1 (Chris de Vidal). In addition, it doesn't take into account special characters, like ü which may need to be uppercased to Ü.
My current thinking is to normalise everything to lowercase, uppercase the words, then handle as many special cases as I can, but KNOWING all the special cases is half the battle.
And yes, I've done a Google, but searching for terms like "name" and "capital" and "format" return thousands of irrelevant results amongst a few gems :)
--- Justin French http://indent.com.au -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php