Dennis: RegExp.: erster Buchstabe groß

Beitrag lesen

Hi Candid,

Du hast den Anfang vergessen.

Stimmt, du hast Recht - wenn wir jetzt schon aber dabei sind, dann hast du auch den "Anfang" vergessen ;-)

$string = preg_replace('/([-_\\/ ]|^)([a-z])/ei', 'strtoupper(\'$1\')', $string);

Außerdem habe ich bei strtoupper die Anführungszeichen hinzugefügt, da er sonst afaik den Inhalt der Variable auszurühren versucht.

Ich habe es dann jetzt doch gerade mal getestet - meine Version ohne Anfz. ergab:
  Warning:  Wrong parameter count for strtoupper()
Deine ist aber auch nicht das Wahre - bei einem String
  $string = "es war einmal ein schöner tag";
wird lediglich ausgegeben:
  s ar inmal in chöner ag

Du lässt nämlich $2 vollkommen wegfallen ;-)

Richtig wäre also:

$string = preg_replace('/([-_\\/ ]|^)([a-z])/ei', 'strtoupper(\'$1$2\')', $string);

Den Backslash vor dem - habe ich auch weggemacht. Ich bin mir nicht sicher, ob das mit dem überhaupt funktioniert. Jedenfalls baut man einen Bindestrich in eckige Klammern ein, indem man ihn gleich an den Anfang schreibt. (Ich hoffe, ich habe da jetzt nicht etwas verwechselt)

Auch das habe ich gerade nochmal getestet:

$string = "es war einmal ein schöner tag -a";  
  
$zeichenklasse = "[\-_\\/ ]";  
//Ausgabe: Es War Einmal Ein Schöner Tag -A  
  
$zeichenklasse = "[_\\/ \-]";  
//Ausgabe: Es War Einmal Ein Schöner Tag -A

Funktioniert also beides ;-)

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Das Leben ist kein Warenhaus - es nimmt nichts zurück. (Anette Louisan)