phpbar.de logo

Mailinglisten-Archive

[php] Funktionsaufruf im ereg_replace: Nachtrag

[php] Funktionsaufruf im ereg_replace: Nachtrag

Ulf Wendel UW_(at)_NetUSE.DE
Tue, 11 Jan 2000 14:28:52 +0100


Marian Steinbach wrote:
 
> geht es hervorragend, was wohl vor allem dem
> Geschwindigkeitsvorteil von str_replace() gegenüber
> ereg_replace() zu verdanken ist.

Auch ich habe diese Erfahrung gemacht. Ein Shop-System verlangte
gut 120 Ersetzungen pro Template, was bei 50 Produkten bereits zu
5.000 Ersetzungen führt. Obwohl die preg_* Funktionen sehr
schnell sind, verlor das mit einem Array gefütterte
preg_replace() gegen str_replace(). 

Vermutlich liegt dies daran, daß die preg_* Funktionen erst einen
auf den jeweiligen Regulären Ausdruck zugeschnittenen Automaten
erzeugen. Dieser arbeitet dank seiner Spezialisierung zwar
sauschnell, seine Erzeugung dauert jedoch recht lange. Länger als
brute-force artig str_replace() zu verwenden, was sehr einfach
programmiert sein dürfte.

Bei str_replace() - bitte korrigiert mich - läuft die Funktion
vereinfacht gesagt nur durch Speicherzellen durch und überprüft
deren Inhalt. Das geht halt richtig schnell in C.

Ulf

-- 
Ulf Wendel
NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany
Fon: +49 431 386435 00  --  Fax: +49 431 386435 99


php::bar PHP Wiki   -   Listenarchive