n'abend,
$zeichen = array( 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss');
$string = "Hällö Wörld";
$ohneUmlaute = strtr( $string, $zeichen );
> damit hatte ichs auch probiert, mit preg\_replace\_callback wirds mir schon zu komplex, mit extra funktion und so.
Was du eingangs als "Backreference" bezeichnetest, hat mein Hirn automagisch nach "Callback(-reference)" konvertiert. Dementsprechend wies ich dich auf die beiden Möglichkeiten zur Nutzung von Callback-Funktionen in Regulären Ausdrücken hin. Dass du - je nach Anforderung - dann eine eigene Callback-Funktion angeben musst, versteht sich von selbst.
> jedoch scheint es, wie wenn man bei preg\_replace mit modifier e keine kontrollstrukturen verwenden kann. wie if else ...
Das könnte daran liegen, dass dort "inline-PHP" erwartet wird, kein Code-Block. Braucht man das, würde man die Funktionalität in einer Callback-Funktion kapseln.
> der hinweis von bittersman vereinfacht zumidnest dieses problem jedoch optimal.
der Hinweis von Gunnar zeigt dir lediglich, dass du mehere "Ersetzungsgesuche" in einem einzigen Aufruf von preg\_replace ausführen kannst. Das ist aber - soweit ich dich verstanden habe - nicht das was du suchtest.
Solltest du mit Gunnars Hinweis doch zufrieden sein, möchte dich dich darauf hinweisen, dass es unnötig ist für solche Trivialfälle RegEx einzusetzen. RegExe sind - mit Ausnahmen - langsamer als die "einfachen String-Funktionen". Bevor du also (wie im folgenden Beispiel) mit Kanonen auf Spatzen schießt, solltest du überlegen stattdessen [strtr()](http://php.net/strtr) zu benutzen
~~~php
// unsinniger Gebrauch von Regular Expressions für triviale Ersetzungen:
$zeichenkette = 'Der schnelle braune Fuchs sprang über den faulen Hund.';
$suchen = array( '/schnelle/', '/braune/', '/Fuchs/' );
$ersetzen = array( 'Bär', 'schwarze', 'langsame' );
echo preg_replace($suchen, $ersetzen, $zeichenkette);
// sinnvollerer Einsatz von strtr() für triviale Ersetzungen:
$zeichenkette = 'Der schnelle braune Fuchs sprang über den faulen Hund.';
$ersetzen = array( 'schnelle' => 'Bär', 'braune' => 'schwarze', 'fuchs' => 'Bär' );
echo strtr($zeichenkette, $ersetzen);
weiterhin schönen abend...
--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|