Andreas: ersten Buchstaben groß schreiben (auch äöü)

Beitrag lesen

Hallo!

Es gibt ja in php ne prima Funktion, wie man jeweils den ersten Buchstaben jedes Wortes eines Strings groß schreiben kann - ucwords(). Diese Funktion hat aber folgende Nachteile:

  • keine Beachtung von äöü
  • kein Groß-schreiben nach "-" und "."

Bei mir geht es darum usereingaben automatisch in ein "vernünftiges" Format zu ändern. Bei obiger Funktion habe ich im Manual schon einige Workarounds gefunden, aber leider immer ohne Beachtung der Umlaute. Am besten fand ich folgende Funktion(ich will nichts in der ini verändern, oder geht das temmporär für ein Script?):

function uc_all($string) {
    $temp = preg_split('/(\W)/', $string, -1, PREG_SPLIT_DELIM_CAPTURE );
    foreach ($temp as $key=>$word) {
        $temp[$key] = ucfirst(strtolower($word));
    }
    return join ('', $temp);
}

ich habe es auch geschafft das der reguläre Ausdruck auf äöü reagiert, also: /([^\wäÄöÖüÜ])/

Aber das Problem ist, das PHP nicht weiß wie man äöü groß schreibt. Jemand ne Idee wie man das vernünftig macht?

Die zu überprüfenden Eingaben sind Name und Adresse. Außer -.äöü, sieht jemand noch weitere Probleme für diesen Anwendungsbereich?

Viele Grüße
Andreas