Я не ожидаю, что это ответит на ваш вопрос как таковой, но подумал, что это может дать вам еще кое-что, чтобы подумать.Некоторый код, который у меня есть, когда мой шаблонный класс перегружен.
function replace_tags(&$xhtml, $tags) {
if( is_array($tags) && count($tags) > 0 )
foreach ($tags as $tag => $data) {
$xhtml = str_replace("{{" . $tag . "}}", $data, $xhtml);
}
if( $xhtml ) return $xhtml;
}
$tpl = "/templates/index.xhtml";
$tags = array(
"css" => null,
"js" => null,
"main_content" => null
);
$tags['main_content'] = file_get_contents("/home/main.xhtml");
echo replace_tags(file_get_contents($tpl), $tags);
редактироватьЯ хотел бы уточнить причину, по которой функция получает $ xhtml по ссылке, а также возвращает $ xhtml.В основном, просто чтобы сделать это двойным назначением.
//Usage at the end of a page
echo replace_tags(file_get_contents($tpl), $tags);
//Usage for template in template
$tags['menu'] = file_get_contents($menu_tpl);
replace_tags($tags['menu'], $tags);
echo replace_tags(file_get_contents($tpl), $tags);