Edgar Ehritt: Leistung von ReEx - heutiger stand

Beitrag lesen

Hallo,

Performanz

Und was willst du da mit einem regulären Ausdruck, der unperformanter ist als einfache Stringoperationen?

zu dieser allgemeinen Meinung habe ich in den letzten Jahren auch immer wieder durch Belege mittels Tests beigetragen. In PHP (getestet habe ich gerade mit einem 5.3.0rc2, VM goto, PCRE lib 7.9 2009-04-11) hat sich einiges geändert. PCRE sind nunmehr fester Bestandteil von PHP, können nicht mehr zum Kompilierungszeitpunkt modularisiert oder ganz ausgelassen werden.

In meinem Test habe ich die folgende Funktion mit preg_replace() verglichen. preg_replace() fakelt seine Aufgabe 40mal so schnell ab!

function one_wordwrap($string,$width){  
  $new_string='';  
  $s=explode(" ", $String);  
  foreach ($s as $k=>$v) {  
    $cnt=strlen($v);  
    if($cnt>$width) $v=wordwrap($v, $width, "<br />", true);  
      $new_string.="$v ";  
  }  
  return $new_string;  
}  
$n=one_wordwrap($string,5);  
$n=preg_replace("/(\S{5}+(?=\S))/",'$1<br />$2',$string);

Gruß aus Berlin!
eddi

--
Ab einem gewissen Erkenntnisstand ist die Versuchung wohl zu groß, in diesem und seinen begleitenden Errungenschaften zu verharren.
Das nenne ich Aufblick zu den Stufen des Tempels von der geistigen Gosse aus!