我知道很多人建议您添加模板引擎,但如果您想创建自己的,最简单的方法是使用 str_replace:
$index = file_get_contents ("index.bel");
$replace_from = array ('$variable_a', '$variable_b');
$replace_to = array ($var_a_value, $var_b_value);
$index = str_replace($replace_from,$replace_to,$index);
现在这是简单的变量替换,但您很快就会想要更多的标签、更多的功能,以及使用preg_replace_callback
. 您可能想看看它,因为它最终可以替换变量、包含其他文件{include:file.bel}
、替换文本(如{img:foo.png}
.
编辑:阅读更多您的评论,您正在创建自己的框架。看看它,preg_replace_callback
因为它为您提供了更多处理事情的方法。
这里非常简单的例子:
...
$index = preg_replace_callback ('/{([^}]+)}>/i', 'preg_callback', $index);
...
function preg_callback($matches) {
var_dump($matches);
$s = preg_split("/:/",$matches[1]); // string matched split by :
$f = 'func_'.strtolower($s[0]); // all functions are like func_img,func_include, ...
$ret = $f($s); // call function with all split parameters
return $ret;
}
function func_img($s) {
return '<img src="'.$s[1].'" />';
}
从这里您可以改进这一点(通过多种方式),例如,如果您愿意,可以将所有功能划分为类。