Hallo!
Es dürfte ziemlich genau drei Umlaute geben, die groß zu schreiben wären, oder? Was spricht dann dagegen per substring den ersten Buchstaben anzuschauen und per eigener Funktion auszutauchen. In der Art:
Ja, daran hatte ich auch gedacht, fand das nur irgendwie "gefrickelt".
$wort = umlaute(substr($wort,0,1));
function umlaute($text){
$sonderzeichen = array ("ä" => "Ä",
"ö" => "ö",
"ü" => "Ü");
$value = strtr($value, $sonderzeichen);
return $value;
}
Nur geht es nicht um html-zeichen, sondern um Datenbankeinträge, jdn da hätte ich lieber die Echten Zeichen ;-)
Aber das Prinzip ist ja das gleiche. Aber danke für Deinen Vorschlag, denn meine Version war mit 3 ifs... und deutlich unschöner ;-)
Habe durch Zufall die Funktion setlocale() gefunden, die einfach auf den deutschen Zeichensatz umschaltet:
<?php
setlocale(LC_CTYPE, "de_DE");
function uc_all($string) {
$temp = preg_split('/(\W|_)/', trim($string), -1, PREG_SPLIT_DELIM_CAPTURE );
foreach ($temp as $key=>$word) {
$temp[$key] = ucfirst(strtolower($word));
}
return join ('', $temp);
}
$text = "markus.ößt&Ein_kleines-schaf.";
echo uc_all($text); // ergibt "Markus.Ößt&Ein_Kleines-Schaf."
?>
Also im prinzip alles OK, oder? Wie gesagt geht es um Namen und Adressen, habt Ihr noch Ideen was da noch für Eingaben möglich sind, an die ich nicht gedacht habe?
Viele Grüße
Andreas