eddi: ersetze Zeichen zwischen zwei Zeichen?

Beitrag lesen

Hallo,

for($j=0;$j<100000;$j++){  
        $a=explode('"','"Liste 1","40,32","20,12","12,07","Liste 1","40,32","20,12","12,07","Liste 1","40,32","20,12","12,07"');  
        for($i=1;$i<count($a);$i+=2)  
                $a[$i]=str_replace(',','.',$a[$i]);  
        $a=implode('"',$a);  
}

$ time env -i ./x.php

real    0m4.170s
user    0m4.132s
sys     0m0.008s

for($i=0;$i<100000;$i++)  
        $a=preg_replace('/(".*?")/e', 'strtr("$1", ",", ".")', '"Liste 1","40,32","20,12","12,07","Liste 1","40,32","20,12","12,07","Liste 1","40,32","20,12","12,07"');

$ time env -i ./y.php

real    0m17.449s
user    0m17.405s
sys     0m0.000s

Testumgebung:

AMD Athlon(tm) XP 1800+
   RAM 759472 kB

OS:  GNU/Linux (gentoo) 2.6.16.5
   PHP: 5.1.3-dev CLI

man sollte nicht verallgemeinern - sicher, aber dies ist mal wieder einer der doch recht typischen Ergebnisse, die mich auch weiterhin davon abhalten werden, diesen Mist einzusetzen.

Gruß aus Berlin!
eddi