|
|
|
| Осознав выгоду использования шаблонов, сразу столкнулся с проблемой с выполнением php-кода в файлах-шаблонах.
Сам файл шаблон:
<table>
<tr>
<td>Использование темплейтов: </td>
<td>{cookie_name}</td>
</tr>
</table>
|
Контроллер:
<?php
class shop
{
public $cookie_name;
function __construct($str)
{
$this->cookie_name = $str;
}
function get_page($file_name)
{
$buf = file_get_contents($file_name.".tpl.php");
$buf = str_replace("{", '<?php echo $obj->', $buf);
$buf = str_replace("}", "; ?>", $buf);
return $buf;
}
}
?>
|
Индексный файл
<?php
require_once("class.shop.php");
$obj = new shop("Бла Бла Бла");
echo $obj->get_page("index");
?>
|
В классе имеется функция get_page(), которая:
1)принимает имя файла
2) затем считывает его содержимое
3) затем преобразует символы { } в их php эквиваленты
4) затем возвращает преобразованное содержимое файла.
В файле индекс эта функция вызывается, ее результат выводится.
Только вот код PHP не хочет исполняться, проблемы какие-то с тегами PHP. Помогите разобраться. Заранее благодарен | |
|
|
|
|
|
|
|
для: Dimka31
(10.09.2008 в 14:33)
| | > Только вот код PHP не хочет исполняться
Вы не давали никому команду выполнить этот PHP-код. Возможно, Вам поможет eval(). А возможно и нет... | |
|
|
|
|
|
|
|
для: BinLaden
(10.09.2008 в 15:37)
| | спасибо! помогло! | |
|
|
|
|
|
|
|
для: BinLaden
(10.09.2008 в 15:37)
| | айяйяй, eval зло!
лучше куда нить сохранить обработанный шаблон в кеш (заодно в следующий раз его обрабатывать не придется), а потом
ob_start(); include $template; return ob_get_clean(); | |
|
|
|