我想添加使用條件語句到這個基本引擎的能力,我試圖發展,我不明白爲什麼它不會工作。誰能幫忙?它並沒有取代文字。添加條件語句引擎
這裏是template.php
的條件語句
<?php
class Template {
private $vars = array();
public function assign($key, $value) {
$this->vars[$key] = $value;
}
public function render($file_name) {
$path = $file_name . '.html';
if (file_exists($path)) {
$content = file_get_contents($path);
foreach ($this->vars as $key => $value) {
$content = preg_replace('/\{' . $key . '\}/', $value, $content);
}
$content = preg_replace('/\{if (.*)\}/', '<?php if ($1): ?>', $content);
$content = preg_replace('/\{elseif (.*)\}/', '<?php elseif ($1): ?>', $content);
$content = preg_replace('/\{else\}/', '<?php else: ?>', $content);
$content = preg_replace('/\{\/if\}/', '<?php endif; ?>', $content);
eval(' ?>' . $content . '<?php ');
} else {
exit('<h4>Engine error...</h4>');
}
}
}
?>
,這裏是在HTML實施
<div class="container">
<div id="content">
<h3>{pagetitle}</h3>
<hr />
<span>My name is {username} and I am {age} years old</span>
{if ({age}==21)}
21
{elseif ({age}==22)}
22
{else}
none
{/if}
</div>
</div>
它的字面打印出的條件塊上面你看到它內嵌
這是爲什麼這麼難用一些存在的模板引擎或只是使用PHP? – 2013-05-09 19:26:56
@George Cummins它真的打印出了{{if}'...到'{/ if}' – zachstarnes 2013-05-09 19:27:08
@I我不拖延我只是想試試讓所有人都這麼做 – zachstarnes 2013-05-09 19:28:02