Der Nachteil bei deiner Variante ist, dass du, so wie es jetzt aussieht, kein Caching bzw. Template-Caching hast -- nicht nur das Caching für die Browser, sondern ein Caching direkt für die Templateverarbeitung.
Smarty legt beim ersten aufruf der Seite eine Templatecache an, danach wird meist nur noch über diese Ressource gearbeitet -- die ganzen replace-Geschichten bei jedem Aufruf fallen weg.
Ich habe einen solchen Cache in BdE-Online für rechenintensive Operationen. Diese haben aber nichts mit preg_replace Patterns zu tun. Diese sind aus Perl Sicht zu performant, als dass sich ein Caching lohnen würde.
Ein Cache macht auch seine Sorgen. So musst du ihn leeren können, damit in der Kontrollphase frische Resultate geliefert werden. Keine Ahnung ob Smarty das vorsieht.
mfg Beat
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische