我正在使用此功能:
public function fetch($file){
$file = $this->options['template_dir'].(string)$file;
if(file_exists($file)){
ob_start();
if($this->options['extract']){
extract($this->vars);
}
include $file;
return ob_get_clean();
}else{
throw new Exception('De ('.$file.') template bestaat niet.');
}
}
基本上它只是用<?php echo $name; ?>
的数据替换tpl中的$tpl->name
。
我想开始使用{$name}
而不是在我的TPL文件中使用<?php echo $name; ?>
。任何人都可以指出我正确的方向用$tpl->name
?
我尝试使用正则表达式,尝试找到{和}然后替换它,但它只会输出$name
作为文本。
答案 0 :(得分:0)
这样的东西?
preg_replace("/\{(.+)\}/e", "$1", $template);
请注意,不推荐使用5.5,如php手册中所述:http://php.net/manual/en/reference.pcre.pattern.modifiers.php
答案 1 :(得分:0)
我可能会使用正则表达式,但这里是替代品。你也可以通过$ this-&gt; vars键来预告:
$template = file_get_contents($file);
$vars = explode(',', '{$'.implode('},{$', array_keys($this->vars)).'}');
$output = str_replace($vars, $this->vars, $template);