[php] Template Funktion/Classe

quicksilver

Lt. Junior Grade
Registriert
Jan. 2004
Beiträge
363
Ich bin auf der suche nach einer Template Klasse oder eine Funktion kann mir da einer weiterhelfen ? Muss nichts wildes sein. Möchte halt eine template html datei haben und dortdrin mit {newstext} oder ähnlichem die Stellen "markieren" die nachher die Variablen enthalten sollen.

Danke für eure Hilfe.

mfg
 
mir reicht eigentlich ein kleines .. das ist ja schon sehr komplex oder nicht ?


Ich habe nun sowas kleines hier .. Aber bräuchte nochmal eure hilfe um das ein bischen anzupassen.

index.php:

PHP:
<?php

 //Einbinden der Template Klasse
 include("parser.php");

 //Definition der Variablen durch die die Platzhalter
 //ersetzt werden.
 $title    = "Test Titel";
 $text     = "der text text";


 //Array mit den Platzhaltern (Keys) und den Inhalten.
 $var_array = array("TITLE" => $title, "TEXT" => $text);

 //Initialisierung der Klasse und Parsen des Templates
 $tpl = new parser("content.html", $var_array);
?>

content.html:

PHP:
<html>
<head>

</head>
<title>{Title}</title>
<body>
{TEXT} 
</body>
</html>

parser.php:
PHP:
<?php
 Class parser
 {
  var $template;
  var $temp_content;

  function parser($template, $var_array)
  {
   $this->template = $template;
   $this->temp_content = file($this->template);
   $parsed = $this->rplc($var_array);
   echo(implode("", $this->temp_content));
  }

  function rplc($var_array)
  {
   foreach($var_array as $key => $value)
   {
    //$regex[var_name] : {VARIABLE}
    $regex['var_name'] = "#{[[:space:]]*?(".strtoupper($key)."){1,}?[[:space:]]*?}#si";
    $this->temp_content = preg_replace($regex['var_name'], $value, $this->temp_content);
   }
  }
 }
?>

So mein problem was ich noch habe ist das hier:

PHP:
//Array mit den Platzhaltern (Keys) und den Inhalten.
 $var_array = array("TITLE" => $title, "TEXT" => $text);

Ich würde das gerne automatisieren das ich das nicht von hand da eingeben muss. Also das die werte die ich "übergebe" das die automatisch in das var array geschrieben werden mit dem namen der Var ohne$ . Könnte mir da wer helfen ?
 
Zuletzt bearbeitet:
Hm, sollte ungefähr so funktionieren:

PHP:
//entfernt, s.u.!

Dann einfach mit
echo parser("header/banner.html"); // (Beispiel)
benutzen.

Update
Habe jetzt mal schnell einige Dateien erstellt und einen enthaltenen Fehler behoben:

http://www.gsg-wismar.com/DevNet/Benjamin_Beckmann/Computerbase/94437/
(Klick auf die Dateinamen, um den Quelltext angezeigt zu bekommen)

Update 2
Funktioniert nun auch mit Arrays (auch mehrdimensional).
 
Zuletzt bearbeitet:
Zurück
Oben