Tom: Reguläre Ausdrücke, Lösung gefunden! Danke.

Beitrag lesen

Hello,

Ich habe die Lösung gefunden:

ich suche ein Muster. Das kann folgendermaßen aussehen

<!--{F-filetime(-10)}-->
   <!--{T-mainmenu}-->
   <!--{L-self}-->

und habe dafür

//              1     2     3        4        5   6   7       7       8   9
    $pattern = '=^(.*?)(<!--{)(.*?)(L-|M-|F-|T-)(.*?)(((.*?)))?([^}]*?)(}-->)(.*$)=msi';

als Pattern aufgebaut, was aber augenscheinlich falsch ist.

1      2      3      4         5           6   7          8         9      10
$pattern = '=^(.*?)(<!--\{)(.*?)(L|M|F|T)-([a-z0-9]{1,})(\((.*?)\))?([^\}]*?)(\}-->)(.*$)=msi';
                                            ------------

So funktioniert es, wie vorgesehen. Bezüglich der Toleranz kann ich noch dran arbeiten.

<!--{ F-filetime ( -10 ) }-->
         ^          ^ ^   ^ ^
Hier wären dann Leerzeichen möglich, die ich aber nicht als Result benötige.

Die Frage mit den Backslashes hat sich auch klären lassen, inde ich mir das resultierende Pattern ausgeben lassen habe. Es ist PHP egal, ob man einen \ oder zwei \ nimmt. Es resultiert daraus immer nur einer. Ich habe jetzt, um zum Manual konform zu bleiben, zwei benutzt.

Das mit [5] habe ich allerdings noch nicht begriffen, wo da der gravierende Unterschied ist.

Der Sinn der Übung steckt in der Abarbeitung eines Templates.
Die Vorlage hatte ich hier die letzten Tage im Archiv gefunden.

In einer externen Datenressource stehen zu den jeweiligen Bezeichneren die Texte, oder aber die Parameter zu Funktionen, die dann ausgeführt werden, sofern sie definiert sind.

Auf diese Weise lassen sich userkonfigurierbare aktive Templates bauen.
Den Usern eines CMS kann man schließlich nicht das Benutzen von "include()" und PHP-Code gestatten.
Man kann auf diese Weise beliebige Funktionen erfinden, deren Ergebnis dann an der jeweiligen Stelle ins Template eingestanzt wird.

Ich bin durch Eure Hilfe ein großes Stück weitergekommen. Danke allen und zieh mir jetzt nochmal die Klamotten von lulu rein ;-)

Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau