PHP Template Sprache verstehen/schreiben

Blackbenji

Lieutenant
Registriert
Nov. 2009
Beiträge
565
Ich versuche gerade zu verstehen, wie ich mittels PHP ein "Template" (HTML) einlese und Variabeln durch Content replace.

Ich weiß das PHP eine Template Enginge besitzt und durch <? foreach(...);?> ich auch jederzeit in einem Template darauf zugreifen könnte - aber es ist nicht userfreundlich und für einen Designer schwer zu verstehen.

Daher möchte ich mir selber was eigenes Schreiben.

Für einzelne Variabeln funktioniert das hier wunderbar:
PHP:
$temp = file_get_contents('index.html');

$replaceArray[] = array(
    "{ordernummer}" => "200",
    "{verzendungszweck}" => "300",
);

$text = strtr($temp, $replaceArray);

echo $text;

Was ist aber wenn ich ein Loop von Datensätzen habe?
Bislang bin ich da nicht wirklich draus schlau geworden wie ich das angehen kann ...
 
Das ist keine Template-Engine, sondern ein einfaches String-Replace. Ob der String HTML enthält, ist PHP egal. PHP ersetzt einfach den linken Ausdruck mit dem rechten. Ob da geschweifte Klammern oder sonstwas drin vorkommen, ist unwichtig.

PHP:
$temp = file_get_contents('index.html');

// ich gehe davon aus, dass $datensaetze ein Array ist, das vorher befuellt wurde
foreach ($datensaetze as $key => $datensatz) {
    $replaceArray = array(
        "{ordernummer}" => $datensatz["ordernummer"], // z.B. 200 im vorliegenden Datensatz
        "{verwendungszweck}" => $datensatz["verwendungszweck"] // z.B. 300 im vorliegenden Datensatz
    );

    $text = strtr($temp, $replaceArray);

    echo $text;
}

Das ist eigentlich völliger Unsinn, da dieser Code mehrere HTML-Dokumente ausgeben würde. Ich vermute eher, dass du eine Art Tabelle bauen willst, oder?
 
Blackbenji schrieb:
Ich weiß das PHP eine Template Enginge besitzt
Da weißte aber was Falsches. PHP selbst hat keine Template Engine. Es gibt komplexe Frameworks, die dir Templating ermöglichen (mit Platzhaltern, z.B. in der Form {{article::content}} <- wird durch den Inhalt eines Artikels ersetzt).

Wenn du so etwas selbst schreiben willst, dann...
- befasse dich als erstes mit dem Prinzip des Output Buffers, den wirst du brauchen
- überleg dir ein gutes Schema für Insert Tags und evtl. auch Schleifen-Tags.

Oder:
Scheiß auf die Arbeit, nimm ein CMS. Problem in 5 Minuten gelöst.
 
Zurück
Oben