模板引擎中最核心的思想是:将模板中的变量编译为php的变量进行输出。
例如:demo.tpl
{$data}
{$title}
那么模板引擎就要将{$data} {$title} 编译为 <?php echo $data; ?> <?php echo $title; ?>
要实现这个功能使用正则替换就可以了:
$content = '{$data}{$title}';
$pattern = "/\{\$([a-zA-Z_][a-zA-Z0-9_]*)\}/";
$content = preg_replace($pattern,'<?php echo \$this->tmpValue["$1"] ?>',$content);
echo $content; // <?php echo $data; ?><?php echo $title; ?>
这就是php模板引擎的核心功能了。下面是我写的一个简单的php模板引擎
首先是tempTool.class.php 它的作用的提供模板引擎需要用到的一些小工具
<?php
/**
* 工具类
**/
class tempTool
{
protected $error = array(); //错误信息
function __construct()
{
}
/**
* 生成错误日志数组
**/
protected function error($k,$v)
{
i