我正在尝试将使用条件语句的能力添加到我正在尝试开发的这个基本引擎中,但我无法弄清楚它为什么不起作用。任何人都可以帮忙吗?它不是替换文本。
这是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>
当您看到它内联时,它会从字面上打印出上面的条件块