Kalma
Erfahrenes Mitglied
Hey,
ich habe mit der Hilfe eines Tutorials meine eigene kleine Template Klasse geschrieben...
Jetzt will ich noch eine Foreachschleife machen, damit man auch Einträge aus der Datenbank holen kann.
Wie müsst ich die einbinden?
Mein Code
ich habe mit der Hilfe eines Tutorials meine eigene kleine Template Klasse geschrieben...
Jetzt will ich noch eine Foreachschleife machen, damit man auch Einträge aus der Datenbank holen kann.
Wie müsst ich die einbinden?
Mein Code
PHP:
<?php
class Template
{
var $path = 'templates/';
var $file;
var $var_name = array();
var $var_value = array();
// Variablen festlegen und ersetzen
// v_name = Variablen Name
// v_value = Variablen Wert
function assign($v_name, $v_value)
{
$this->var_name[] = $v_name; # Variablen Name in Array schreiben
$this->var_value[] = $v_value; # Dazugehörigen Wert übernehmen
}
// Template anzeigen
// file = Dateiname (mit .tpl Endung)
function display($file_name)
{
$this->file = $this->path.$file_name;
// Output Variable erstellen
$output = '';
// Prüfen, ob Datei exisitert
if(!file_exists($this->file)) {
die('Template Error: Die Datei '.$this->file.' wurde nicht gefunden!');
}
// Datei öffnen
$file = fopen($this->file, 'r');
// Fopen - Beschreibung vom Manual
// Prüft, ob der Dateizeiger am Ende der Datei steht
// Versteh ich nich, ich benutz es einfach :D
while(!feof($file))
{
// Fgets - Beschreibung vom Manual
// Liest eine Zeile von der Position des Dateizeigers
// Versteh ich auch nich, benutz ich auch trotzdem
$buffer = fgets($file, 4096);
$output .= $buffer;
}
// Inhalte ersetzen mit for-schleife und preg_replace();
for($i=0; $i<count($this->var_value); $i++)
{
// Array für Search und Replace Wert festlegen
$search = array();
$replace = array();
// Werte für Search und Replace mit RegExp einbinden
$search[] = '/\{\$'.$this->var_name[$i].'\}/i';
$replace[] = $this->var_value[$i];
// Das Ganze mit Preg_Replace ersetzen
$output = preg_replace($search, $replace, $output);
}
// Datei schließen
fclose($file);
// Datei ausgeben
print $output;
}
}
?>
Zuletzt bearbeitet: