Mailinglisten-Archive |
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