Ja, der Lösungsweg...
Also, ich habe zuerst eine Klasse geschrieben, die Funktionen zur Extraktion bereitstellt.
PHP-Code:
<?php
// Diese Klasse parst Templates
class CTemplate
{
var $strTemplate;
function Load($file_path)
{
$fp = fopen($file_path,"r"); // Datei zum Lesen öffnen, Zeiger setzen
$this->strTemplate = fread($fp,filesize($file_path)); // und einlesen... dabei muss die Dateigröße angegeben werden
fclose($fp); // Zeiger löschen
}
function Replace($needle, $replacement)
{
$this->strTemplate = str_replace("%".$needle."%",$replacement,$this->strTemplate);
}
function Display() // Ausgabe des Templates
{
echo $this->strTemplate;
}
}
?>
Hierbei handelt es sich im Einzelnen um
- eine Loader-Methode
- eine Parser-Methode
- eine Ausgabe-Methode
Der Loader-Methode muss ein Dateiname übergeben werden, damit sie eine Datei öffnen und auslesen kann. Der Inhalt der Datei steht dann vollständig in der Variable $strTemplate.
Die Replace-Methode bekommt eine "Nadel" (needle) und einen "Ersatz" (Replacement) übergeben. Die Nadel ist der Text, der mit dem Replacement ersetzt werden soll. Beispielsweise würde der Aufruf
PHP-Code:
$CTemplate->Replace("title", "Seitentitel")
bewirken, dass die Zeichenfolge
%title% ersetzt wird durch
Seitentitel. Statt der % Zeichen kann auch jede beliebige andere Zeichenfolge als Nadelkopf dort stehen. Es eignet sich auch, HTML-Dateien im WYSIWYG-Editor vorzufertigen und dann in ein Template zu parsen, indem man einfach die Nadel "<body>" benutzt.
Die Verwendung setzt voraus, dass in der Template-Datei die needle-Zeichenfolge vorhanden ist, z.B. in der Form %title%. Es genügt, diese Nadel an passender Stelle im Template zu platzieren.
Dann wird die geparste Datei mit dem ersetzten Text ausgegeben.
Zugegeben, das System ist sehr einfach und hat auch Nachteile, aber es genügt für kleine Zwecke. Für eine Forum-Software oder ein CMS ist es nicht zu empfehlen.