phpbar.de logo

Mailinglisten-Archive

[php] str_replace oder string zusammensetzen

[php] str_replace oder string zusammensetzen

Ulf Wendel ulf.wendel_(at)_redsys.de
Thu, 28 Sep 2000 23:53:15 +0200


Michael Stahmann wrote:
> 
> Hallo Liste,
> 
> immer wieder kommt man auf das Thema Newsletter und PHP :-)
> In diesem Zusammenhang eine kurze Frage.
> 
> Vorrausetzung ein Text von ca. 2 DIN A4-Seiten.
> 
> Was sollte schneller gehen:
> 
> 1. Platzhalter im Text mittels str_replace ersetzen
> oder
> 2. Den Text on the fly zusammenbasteln?

Solche Dinge sollten im Einzelfall ausgemessen werden, wenn Du wirklich
glaubst das es sich lohnt an dieser Stelle zu optimieren. 

Eine endgültige Antwort kann ich Dir also nicht geben. Lediglich ein
paar Erfahrungswerte nennen aus meinen letzten Spielchen mit Templates,
sofern Du über Platzhalter nachdenkst. 

ereg_* hat nicht nur den Ruf vergleichsweise langsam zu sein, sondern
ist es auch. Das ist der Grund warum die FastTemplates eigentlich keine
FastTemplates sondern SlowTemplates sind. Für Ersetzungen sollten str*
Fuktionen oder preg_* Funktionen benutzt werden. Die preg_* Funktionen
können hierbei eine erstaunliche Geschwindigkeit entwickeln, weil sie in
der Regel mit Suchmustern ohne Pattern gefüttert werden, da die Liste
der Platzhalter bekannt ist. 

Besonders interessant für einen Geschwindigkeitsvergleich sind die
Funktionen, die mehr als eine Ersetzung pro Funktionsaufruf machen
können: strtr() und preg_replace(). Wenn Du diese ausmisst, wirst Du
sehen, das mal die eine mal die andere gewinnt. Du kannst auch noch
Schleife + str_replace() mit ins Boot nehmen und die wechselnden
Ergebnisse bleiben.

Ich habe einen deutlichen Vorteil bei weniger als etwa 50 Elementen im
Ersetzungsarray, kurzen Platzhalternamen und kleinen Ersetzungswerten
zugunsten von preg_replace() gemessen. Damit war meine Template
Entscheidung klar.

Miß es halt aus.

Ulf


php::bar PHP Wiki   -   Listenarchive