Вот реализовал такой небольшой класс:
Код:
<?php
class Template {
private $filename; // Имя файла шаблона
private $variables; // Переменные
private $buffer; // Буффер
// Инициализация $filename - имя файла шаблона
public function __construct($filename) {
$this->filename = $filename; // Имя файла
$this->variables = array(); // Переменные массив
}
// Добавляем переменные $key - имя переменной, $value - значение
public function add_variable($key, $value) {
$this->variables[$key] = $value; // Добавляем ассоциативный массив
}
// Выполняем отрисовку
public function render() {
$this->buffer = file_get_contents($this->filename); // Загружаем файл, и содержимое передаём переменной
foreach($this->variables as $key => $value) {
// Под циклом все переменные заменяем
$this->buffer = str_replace($key, $value, $this->buffer);
}
// Возвращаем
return $this->buffer;
}
// Сохраняем в файл
public function render_cache($filename) {
file_put_contents($filename, $this->render());
}
}
?>Пример:
Код:
$templ = new Template('main.template');
$templ->add_variable('%title%', 'Заголовок');
$templ->add_variable('%content%', 'Тут текст!');
echo $templ->render();
$templ->render_cache('test.cache');