You are not logged in.

  • Login

1

Friday, December 2nd 2011, 11:19am

Jeden ersten Buchstaben groß Schreiben

Ich lasse mit folgendem Code jeden ersten Buchstaben in einer Variable groß schreiben:

PHP Quellcode

1
$text[23] = mb_convert_case($text[23], MB_CASE_TITLE, "UTF-8");


Es gibt aber noch einige Sonderfälle, wo das nicht greift.
Zum Beispiel:
"Ich Bin.zu Hause"
"Ich Bin-nicht Zu Hause"

Also nach Punkt, Koomma oder Bindestrichen wird der Buchstabe nicht groß. Gibt es da einen besseren Weg, als all diese Wörter mit replace zu erstezen. Sind nämlich hunderte von Wörtern die das betrifft.

2

Friday, December 2nd 2011, 12:09pm

Versuch es mal mit der Funktion ucwords() , aber ich glaube sie kann das auch nicht mit Zeichen dazwischen.

Dafür gibt es aber in den Kommentaren der PHP-Seite zur Funktion Ansätze wie man das lösen kann :)

3

Friday, December 2nd 2011, 2:05pm

Versuch es mal mit der Funktion ucwords() , aber ich glaube sie kann das auch nicht mit Zeichen dazwischen.

Dafür gibt es aber in den Kommentaren der PHP-Seite zur Funktion Ansätze wie man das lösen kann :)

Beziehungsweise die fertige Lösung für dein Problem ..

4

Friday, December 2nd 2011, 5:51pm

Habe es gefunden. Vielen Dank.

5

Friday, December 2nd 2011, 8:56pm

Versuch es mal mit der Funktion ucwords() , aber ich glaube sie kann das auch nicht mit Zeichen dazwischen.

Dafür gibt es aber in den Kommentaren der PHP-Seite zur Funktion Ansätze wie man das lösen kann :)

Beziehungsweise die fertige Lösung für dein Problem ..

Hatte mir die Skripte nicht genau angeschaut ;-)

6

Saturday, December 3rd 2011, 5:02pm

ucwords ist übrigens nicht multibyte safe. Du solltest es also nicht in einem Umfelfd einsetzen wo du mit verschiedenen Zeichensätzen/Sprachen konfrontiert bist.
Die Lösungsansätze aus den Kommentaren solltest du also auf mb_convert_case anwenden.

Nutze einfach den folgenden Helper und poste doch bitte auch deine fertige Lösung.

PHP Quellcode

1
2
3
4
5
6
7
if(!function_exists('mb_ucwords'))
      {
            function mb_ucwords($str)
            {
                  return mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
            }
      }

Social bookmarks