phpbar.de logo

Mailinglisten-Archive

Re: Templates mit PHP3
Archiv Mailingliste php_(at)_infosoc.uni-koeln.de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Templates mit PHP3



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);

?>

Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive