schildi: regexp: je nach ergebnis untersch. ersetzung

Beitrag lesen

n'abend,

die ersetzung der sonderzeichen ä,ö,ü mit ae, oe, ue

... erreichst du am Einfachsten so:

$zeichen = array( 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß'  => 'ss');

$string = "Hällö Wörld";
$ohneUmlaute = strtr( $string, $zeichen );


>   
> > mir geht es hier generell um ein prinzip, derartige ersetzungen mit regulären ausdrücken und backreferences zu lösen.  
>   
> du suchst [preg_replace()](http://php.net/preg_replace) und die dazugehörige Dokumentation. Auf der selben Seite gibt es auch ein kleines [Beispiel](http://php.net/preg_replace#id3325588) dazu. Für diesen Spaß ist der [Modifikator](http://www.php.net/manual/de/reference.pcre.pattern.modifiers.php) e (evaluate) verantwortlich  
>   

damit hatte ichs auch probiert, mit preg\_replace\_callback wirds mir schon zu komplex, mit extra funktion und so.  
  
jedoch scheint es, wie wenn man bei preg\_replace mit modifier e keine kontrollstrukturen verwenden kann. wie if else ...  
  
der hinweis von bittersman vereinfacht zumidnest dieses problem jedoch optimal.