Code: Alles auswählen
<?PHP
include('includes/template.class.php');
$template = new template();
$template->assign('header', 'header');
$template->assign('content', 'content');
$template->assign('footer', 'footer');
$template->display('fb/index');
?>
also es parst mir nur den ersten platzhalterheader{content} {footer}

die template class sieht wie folgt aus:
Code: Alles auswählen
<?php
class template
{
var $left_delimeter = '{';
var $right_delimeter = '}';
var $template_dir = 'templates/';
var $template_extension = '.html';
var $header = 'overall_header';
var $footer = 'overall_footer';
var $assigns = array();
function template()
{
}
function assign($name, $value = '')
{
if (!empty($value))
{
$this->assigns[$name] = $value;
}
else
{
while(list($key, $value) = each($name))
{
$this->assigns[$key] = $value;
}
}
}
function parse($file)
{
$file = file_get_contents($file);
while(list($key, $value) = each($this->assigns))
{
if(preg_match('/(' . $this->left_delimeter . ')(' . $key . ')(' . $this->right_delimeter . ')/', $file))
{
$file = preg_replace('/(' . $this->left_delimeter . ')(' . $key . ')(' . $this->right_delimeter . ')/', $value, $file);
}
}
echo $file;
}
function display($template_name)
{
$explode = explode('/', $template_name);
$header = $explode[0] . '/' . $this->header . $this->template_extension;
$footer = $explode[0] . '/' . $this->footer . $this->template_extension;
self::parse($this->template_dir . $header);
self::parse($this->template_dir . $template_name . $this->template_extension);
self::parse($this->template_dir . $footer);
}
}
?>