我正在尝试从 HTML 模板文件中获取 php 代码以执行它并将结果放回原处。我可以使用什么正则表达式代码?是否有一种方法也可以返回找到的第一个标签的位置?
<p>some html</p>
<?php $some = "php code"; ?>
<p>some <em>more</em> html</p>
<?php $some = "more php code"; ?>
我想要从 html 中过滤的 php 代码。
您应该将变量传递给模板文件,而不是“取出 PHP 并将其放回原处”。
像这样的东西:
<?php
function loadTemplate($path,$data=array()){
if (file_exists($path) === false){
throw new Exception('Template not found:'.$path);
return false;
}
extract($data);
ob_start();
require($path);
$return = ob_get_contents();
ob_end_clean();
return $return;
}
$vars = array('var1'=>$value,
'var2'=>$somevalue,
'var3'=>$someothervalue,
'var4'=>$blab);
$template = loadTemplate('path/to/thefile.php',$vars);
?>
然后像
ect一样$vars
从thefile.php中访问数组值echo $var1
echo $var2
希望能帮助到你
preg_match("/<\?.*?\?>/m",$output,$matches)
或者
preg_match("/<\?.*?\?>/s",$output,$matches)
应该匹配所有行。