"-<[ Rene Brehmer ]>-" <[EMAIL PROTECTED]> writes:
> Firstname Middlename Last-name
> But I want the last namepart after the slash (-name) to also start
> with a capital letter.
Just read the comments on ucwords() in the PHP manual, especially the
one from Joerg Krause. He writes:
| None of the examples above recognizes characters normally used as
| delimiters. The following uses a regular expression, which is easy to
| extend, to create an array with the parts of a text. Then it runs the
| ucfirst-function for each part an implode the array:
| $text = "What?No delimiters,shit happens here.this solves all problems.";
| preg_match_all("/(\w+[,. ?])+/U", $text, $words);
| foreach($words as $part) $uwords = ucfirst($part);
| $text = implode("", $uwords);
| echo $text;
All you have to do is adding the "-" to the character class.
> Isn't there some easy way to do this? If I have to go through a FOR
> routine, it kinda ruins the idea of ucwords() in the first place, so
> I'd rather avoid that if at all possible.
I doubt the loop will be much slower than ucwords().
> Also, I'd like it to correctly be able to also correctly capitalize
> Irish and Scottish names (like O'Connor, and MacDonald).
The O'Connor is no problem, just add "'" to the character class. The
MacDonald is a bit harder to solve. The above function will be of no
help, and just matching for "Mac\w*" won't work since it would also
match other names like "Macke". I think you will have to match these
names against a list of possible words with mid word capitalization.
If you can stay calm, while all around you is chaos... then you
probably haven't completely understood the seriousness of the situation.
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php