Username:Skullsplitter
geschrieben am 16.09.2008 um 08:25 Uhr
|
könnt ihr mir eventuell bei meinem problem mit meiner klasse helfen?
meine klasse:
<?php
//Im Falle eines Syntax-Fehlers wird er ausgegeben
//Muss auskommentiert werden, wenn das Script online geht!!!
error_reporting(E_ALL);
class template
{
var $error; //Fehler-Variabel!
var $tmp_file; //Templatedatei
var $inhalt; //Inhalt der gesamten Templatedatei
// __construct wird ausgeführt, wenn die Klasse zum ersten mal aufgerufen wird
// Sie prüft die Templatedatei auf ihre Existenz.
// Wenn es sie nicht gibt, wird das Script abgebrochen und eine Fehlermeldung ausgegeben
function __construct($file, $error = '')
{
// Überprüft, ob die Datei existiert, wenn ja dann
if(file_exists($file))
{
// 1. Datei öffnen
$this->tmp_file = @fopen($file, "r");
// 2. Solange der Dateizeiger nicht am Ende steht
while(!feof($this->tmp_file))
{
// 3. Auslesen der Zeile, in der der Dateizeiger steht
$temp = fgets($this->tmp_file, 4096);
// 4. Speichern der Zeile in der Variabel $inhalt
$this->inhalt .= $temp;
}
// Schließen der Templatedatei
fclose($this->tmp_file);
}
// Wenn die Datei nicht exisitert, wird die Fehlermeldung ausgegeben und das Script
// abgebrochen.
else
{
$this->error = "Template <b>".$file."</b> konnte nicht geöffnet werden.";
exit($this->error);
}
}
// Die Funktion "ersetzen" wird aufgerufen um einzelne Platzhalter zu ersetzen
function ersetzen ($key, $value)
{
$platzhalter = '/\{'.$key.'\}/';
$this->inhalt = preg_replace($platzhalter, $value, $this->inhalt, 1);
}
// Die Funktion "ersetzen_array" wird aufgerufen um Platzhalter zu ersetzen,
// die mehrere Ergebnisse ausgeben sollen (z.B. Datensätze aus Datenbanken)
function ersetze_array($array)
{
foreach ($array as $key => $value)
{
$this->ersetzen($key, $value);
}
}
// Die Funktion "ausgabe" gibt das Template aus!
function ausgabe ()
{
echo $this->inhalt;
}
}
?>
meine index.php:
<?php
include("template_class.php");
$template = "templates/test.htm";
$neu = new template($template);
$neu->ersetze_array(array("INHALT" => "text<br>",
"SEITENTITEL" => "test 2<br>"));
$neu->ausgabe();
?>
so klappt das schon ganz gut eig ^^
wenn ich jetzt aber etwas aus einer datenbank auslesen, dann wird immer nur der letzte wert angezeigt:
z.b.
datenbankanbindung
...
sql....
while($res = mysql...)
{
$speicher .= array(array("ID" => $res[0],
"NAME" => $res[1]));
}
so wird nur der letzte wert ausgegeben.
kann mir da vll wer weiterhelfen?
danke!
gruß,
stefan |