Der Kindergarten 101 lehrt einige von uns, dass: "Die Buchstaben in Ihrem Namen sollten klein geschrieben werden, mit Großbuchstaben als erste Buchstaben." Doch in diesem post-literarischen Zeitalter scheint es davon abzuhängen, wie die Leute ihre Namen in Webformularen eingeben, je nach ihrer Stimmung oder Sonnenflecken oder was auch immer: komplett großgeschrieben, komplett kleingeschrieben, gemischt, auf den Kopf gestellt...
Philosophisch gesehen sage ich egal! Besetze deinen Namen, wen interessiert's. Aber ich habe OCD-Kunden, die Daten standardisiert, normalisiert und vorhersehbar sehen möchten. Deshalb frage ich euch, ob ihr schon einmal gut durchdachte PHP-Funktionen zur Groß- und Kleinschreibung von Namen gesehen habt, die die verschiedenen Ausnahmen berücksichtigen, die ucwords()
völlig vermasseln würde, wie z.B.:
- Sven-Alex Crumpet
- Ronaldo McDonaldo
- Boopsie O'Brien
- J.R. Bob Dobbs
- Francesca de los Gatos
- YungCheng Li
Gibt es Funktionen, die diese Alphabetrebellen berücksichtigen?
UPDATE
Aus Robin v. G.'s Standpunkt gibt es kein Skript, das alle regiert. Aber ich habe entschieden, dass Namen, die vollständig in Klein- oder Großbuchstaben eingegeben werden, wahrscheinlich gute Kandidaten für eine gründliche Reinigung sind. Also werde ich für diese folgendes tun...
if ($name == strtoupper($name) || $name == strtolower($name)) {
$name = ucwords(strtolower($name));
}
Es wäre leicht genug, dies zu ändern, um ein paar wahrscheinliche Ausnahmen zu korrigieren: Bindestriche, Apostrophe, 'McD', usw. Fehler werden gemacht, aber wer wird sich beschweren? Nicht der erbärmliche Bastard, der seinen Namen in Kleinbuchstaben eingegeben hat.
Oh warte, mein Name steht in Kleinbuchstaben...