您好,欢迎访问一九零五行业门户网

自己默写smarty模板引擎,不解析php呢(求高手帮忙)

$realcontent  =$this->filecontent;
$mode = '/\{\$([\w]+)\}/';
if(preg_match($mode,$realcontent)){
var_dump($assign_vars);
$realcontent=preg_replace($mode,assign_vars['$1'] ?>,$realcontent); ;//替换成index.php文件中注入的变量
}
return $realcontent;
}
运行后代码为
assign_vars['content'] ?>
作者:assign_vars['name'] ?>assign_vars['var'] ?>
回复讨论(解决方案) content; $arr_assign_items = $this->assign_items; $pattern = '/\{\$(\w+)\}/'; $this->content = preg_replace_callback($pattern, function($match) use($arr_assign_items) { if (!empty($match)) { if (array_key_exists($match[1], $arr_assign_items)) { echo $arr_assign_items[$match[1]]; return $arr_assign_items[$match[1]]; } } }, $content); } function display() { echo $this->content; }}$template = new template(template_test.html);$template->assign(title, i love you);$template->assign(name, iseagold);$template->assign(china, 中国);$template->assign(provice, 广东省);$template->assign(city, 深圳市);$template->assign(no, 页面不存在,未取出的变量);$template->replace();$template->display();?>
smarty 3 以后默认不支持php 混写了 换成 smarty 2 就可以了
笔误了, 是模仿写 ,不是默写...
笔误了, 是模仿写 ,不是默写...
把那个编译类看懂,全是正则 你只产生了 php 代码,并没有执行他
其它类似信息

推荐信息