【发布时间】:2015-03-19 13:07:31
【问题描述】:
我有一个包含 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 标记位于字符串的开头,这会导致问题。这可以通过一些额外的条件来解决,但这对于我想要实现的目标来说似乎非常复杂。有没有更好的办法?
【问题讨论】: