exitboy
Erfahrenes Mitglied
Hallo,
ich habe zwei Seiten erstellt:
Eine ohne Parsing System (also ne reine PHP Datei), hier erkennt er meine echo Anweisungen.
Die gleiche Datei wird als Vorlage genommen und in diese werden jetzt über das Parsing System Variablen aus meiner Datenbank eingelesen und ergänzen die Vorlagedatei (das Parsing funktioniert.
Nur die PHP Anweisungen in der Vorlagedatei, werden ignoriert ... warum?
die Klasse:
und die Index.php:
die Vorlagedatei, in die aus der Datenbank geparst wird:
ich habe zwei Seiten erstellt:
Eine ohne Parsing System (also ne reine PHP Datei), hier erkennt er meine echo Anweisungen.
Die gleiche Datei wird als Vorlage genommen und in diese werden jetzt über das Parsing System Variablen aus meiner Datenbank eingelesen und ergänzen die Vorlagedatei (das Parsing funktioniert.
Nur die PHP Anweisungen in der Vorlagedatei, werden ignoriert ... warum?
die Klasse:
Code:
<?php
//Klasse zum Parsen von HTML Templates
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);
}
}
}
?>
und die Index.php:
Code:
<?php
//Script zum zeilenweisen Parsen von HTML Templates
//Einbinden der Template Klasse
include("class_tpl_parser_lite.inc.php");
//Uservariablen für den Datenbankzugang
$mysql["host"] = "localhost";
$mysql["user"] = "xxx";
$mysql["password"] = "xxx";
$mysql["database"] = "xxx";
//Definition der ID, Wenn keine ID übergeben wurde
//nimmt das System die Standard ID
if(!isset($_GET["id"])) $id = 1;
if(!isset($id)) $id = $_GET["id"];
//Datenbankverbindung aufbauen und Datenbank auswählen
mysql_connect($mysql["host"],$mysql["user"],$mysql["password"]);
mysql_select_db($mysql["database"]);
//Datenbankabfrage zusammenstellen
$sql = "SELECT * FROM doc_desc, doc_text "
. "WHERE doc_desc.c_id = doc_text.id AND doc_text.id = $id";
//Datenbank wird abgefragt
$_result = mysql_query($sql);
//Das Ergebniss wird in dem Feld ($_array) gespeichert
$_array = mysql_fetch_assoc($_result);
//Definition der Variablen durch die die Platzhalter
//ersetzt werden.
$title = $_array["title"];
$css = $_array["css"];
$template = $_array["template"];
$text = $_array["text"];
//Array mit den Platzhaltern (Keys) und den Inhalten.
$var_array = array("TITLE" => $title,
"CSS" => $css,
"TEXT" => $text);
//Initialisierung der Klasse und Parsen des Templates
$tpl = new parser($template, $var_array);
?>
die Vorlagedatei, in die aus der Datenbank geparst wird:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>{TITLE}</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="{CSS}">
</head>
<body>
<?php echo(date("d.m.Y - G:i")." Uhr"); ?> <!-- FUNKTIONIERT NICHT -->
</body> ...