基本上我试图通过在HTML文件中找到任何类似{$variable}
的内容来解析我的模板preg_replace。
public function parse_file($file) {
return preg_replace('/{\$(.+?)}/i', "$this->params[$1]", $this->get_file($file));
}
但是,这将返回Array(variable)
,而不是variable
数组中设置的$this->params
。
我希望它返回$this->params['variable']
。
为了澄清,这就是我的HTML文件的样子。
<!DOCTYPE html>
<html>
<head>
<title>{$variable}</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div>TODO write content</div>
</body>
</html>
答案 0 :(得分:3)
请尝试preg_replace_callback()
,例如(PHP 5.3)
// using $this in an anonymous function is not very well defined
$params = $this->params;
return preg_replace_callback($pattern, function (array $matches) use ($params) {
return $params[$matches[1]];
}, $this->get_file($file));