Ваша текущая стратегия будет работать, и она довольно проста. str_replace()
эффективен и чист, и вы можете просто зациклить его, чтобы заменить точные совпадения тегов вашим переменным содержимым. Однако недостатком является то, что вы должны сначала загрузить все свои шаблоны в строки, и это может быть довольно неэффективно.
Альтернативный метод, который очень похож, вы можете просто использовать extract () . Извлечение возьмет набор пар ключ / значение и создаст из них переменные в локальной области видимости. Если вы include()
шаблон в той же области, ваши переменные будут готовы к работе.
Примерно так:
function loadTemplate($template,$vars)
{
extract($vars);
include($template);
}
Ваш шаблон может быть просто обычным PHP.
<html>
<head>
<title><?php echo $PAGE_TITLE ?></title>
</head>
<body>
<h1><?php echo $PAGE_HEADER ?></h1>
<p>Some random content that is likely not to be parsed with PHP.</p>
</body>
</html>
(Очевидно, вы могли бы использовать короткие теги для меньшего многословия шаблона, хотя я предпочитаю не делать этого из соображений совместимости.)
Тогда все, что вам нужно сделать, это:
$pageElements = array(
'PAGE_TITLE' => 'Some random title.',
'PAGE_HEADER' => 'A page header!'
);
loadTemplate('file.phtml',$pageElements);