Mailinglisten-Archive |
Martin Hemberger schrieb am Donnerstag, den 17. Juni 1999: > Ich moechte in PHP3 ein Tool schreiben, das mir aus Templates und Daten aus > einer MySQL Datenbank HTML-Dateien generiert. > > Die Variablen sollen in geschweiften Klammern geschrieben sein: > Beispiel: > > -----template.tmpl------ > <html> > <head> > <title>{TITEL_DER_SEITE}</title> > </head> > <body> > {BEGRUESSUNG} > </body> > </html> > ---------------------- Die Idee ist gut - und ich dachte mir auch schon, daß das mordspraktisch wäre. Das in PHP von Hand zu programmieren, ist nicht allzu schwer. Du mußt nur die Templatedatei einlesen und dann per ereg_replace Stück für Stück die Platzhalter ersetzen. Beispiel siehe Anhang. Aber schöner wäre es, wenn wir in PHP eine eigene Funktion dafür hätten! Vielleicht komme sogar dazu, das zu implementieren ... Oder will sonst wer? :) Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ > PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7 Bitte entschuldigen Sie diesen langen Brief, ich hatte keine Zeit für einen kürzeren. -- Goethe
<?php function template($file, $subst) { $pattern = "\{([^}]+)\}" . "(.*)"; $lines = file($file); for( reset($lines); $text = current($lines); next($lines) ) { $neu = ""; while ( eregi($pattern, $text, $regs) ) { $var = $regs[1]; if ( isset($subst[$var]) ) { $replace = $GLOBALS[$subst[$var]]; } else { $replace = $GLOBALS[$var];} $neu .= eregi_replace($pattern, $replace, $text); $text = $regs[2]; /* Rest durchsuchen */ } echo $neu . $text; } }; $templatefile = "beispiel.template"; $Seitentitel = "Nur so'n Test"; $Anrede = "Grüß Dich, werter Leser!"; $Autor = "Martin"; $ersetzung["Begrüssung"] = "Anrede"; template($templatefile, $ersetzung); ?>
php::bar PHP Wiki - Listenarchive