字符串包含带有PHP标记的HTML,执行PHP并注入HTML
我有一个包含HTML的字符串,其中包含PHP代码的PHP标记,如下所示:字符串包含带有PHP标记的HTML,执行PHP并注入HTML,php,html,Php,Html,我有一个包含HTML的字符串,其中包含PHP代码的PHP标记,如下所示: $str = "<div> Colors:<br/> <?php foreach ($colors as $c) { echo $c . "<br/>" } ?> </div>" $str=” 颜色: " 评估PHP代码并将其注入字符串的最佳方法是什么?很像字符串内容作为单个PHP页面运行时会发生的情况。我在考虑做一些类
$str = "<div>
Colors:<br/>
<?php
foreach ($colors as $c) {
echo $c . "<br/>"
}
?>
</div>"
$str=”
颜色:
"
评估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
}
}
$html\u php\u split=preg\u split(“/()/”,$str);
对于($i=0;$i
但如果PHP标记位于字符串的开头,则会出现问题。这可以通过一些附加条件来解决,但这一切对于我想要实现的目标来说似乎非常复杂。有更好的方法吗?也许您可以用以下方法评估代码:
ob_start();
include $filename; // File with your String
$contents = ob_get_contents();
ob_end_clean();
ob_start:此功能将打开输出缓冲。当输出缓冲处于活动状态时,不会从脚本发送任何输出(头除外),而是将输出存储在内部缓冲区中。来源:这很有效,谢谢!仍然有点混乱,我必须保存,然后从文件中导入字符串,但最好使用我的解决方案。