我有一个包含HTML的字符串,其中PHP标签包含PHP代码,如下所示:
$str = "<div>
Colors:<br/>
<?php
foreach ($colors as $c) {
echo $c . "<br/>"
}
?>
</div>"
评估PHP代码并将其注入字符串的最佳方法是什么?就像字符串内容只是作为单个PHP页面运行一样会发生什么。我正在做类似的事情:
$html_php_split = preg_split("/(<\?php|\?>)/", $str);
for ($i = 0; $i < count($html_php_split); $i++) {
if ($i % 2) {
// eval code
}
else {
// keep string
}
}
但如果PHP标记位于字符串的开头,则会导致问题。这可以通过一些额外的条件来解决,但这对我想要达到的目标来说似乎都很复杂。还有更好的方法吗?
答案 0 :(得分:-1)
也许你可以用这种方式评估你的代码:
ob_start();
include $filename; // File with your String
$contents = ob_get_contents();
ob_end_clean();
ob_start:此函数将打开输出缓冲。当输出缓冲处于活动状态时,不会从脚本(标头除外)发送输出,而是将输出存储在内部缓冲区中。资料来源:http://php.net/manual/en/function.ob-start.php