Fabian St.: Reguläre Ausdrücke oder str_replace ?

Beitrag lesen

Hi!

ich möchte in einem String Leerzeichen, Umlaute und sonstige nicht-Zahlung und nicht-Buchstaben ersetzen. Wäre es effizienter für den Server ein paar mal str_replace durchlaufen zu lassen oder es mit preg_replace zu versuchen? Kann man überhaupt mit preg_replace mehrere Umlaute auf einen Schlag ändern (ä -> ae oder ö -> oe)?

Leerzeichen und Umlaute lassen sich einfach mit str_replace ersetzen. str_replace hat zudem den Vorteil, dass du für das Suchmuster und die Ersetzungen Arrays verwenden kannst, was bei preg_replace nicht möglich ist, d.h. du kannst auf einen Schlag mehrere verschiedene Ersetzungen durchführen:

  
$string = 'Ein String mit vielen Umlauten: ÄäÜüÖö';  
$search = array('Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü');  
$replace = array('Ae', 'ae', 'Oe', 'oe', 'Ue', 'ue');  
  
$string = str_replace($search, $replace, $string);  
echo $string; // Ausgabe: Ein String mit vielen Umlauten: AeaeUeueOeoe  

Zudem ist str_replace schneller als preg_replace. Solltest du jedoch kompliziertere Stringersetzungen brauchen, solltest du preg_replace den Vorzug geben.

Grüße,
Fabian St.

--
Meine Website: http://fabis-site.net
--> XHTML, CSS, PHP-Formmailer, Linux
---------------------
fabi@erde ~# whatis spam
spam: nothing appropriate
---------------------
Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)