让我们直接进入它。用于在PHP脚本中动态评估混合内容字符串(html + php)的eval的替代方案
的index.php
<?php
...
$url = "www.google.com";
$val = "Is PHP better than Perl?";
$file = file_get_contents("mixedcontent.txt");
print eval("?>" . $file . "<?");
...
?>
mixedcontent.txt
<html>
...
<form action="<?php echo $url; ?>">
<input id="q" type="text" value="<?php echo $val; ?>"/>
</form>
...
</html>
两个文件是一样存根和需要是不同的,由于商业软件的局限性它依赖于它。
现在,我意识到eval被许多人视为最后的手段,并且大多数人都提出重新设计,因为eval可能是安全风险。是否有替代使用eval动态评估混合内容(即HTML + PHP)?我能以某种方式使用create_function或call_user_func吗?
谢谢。
更新
基于评价和答案部分使用包括这种特殊类型的例子的建议,我已经修改了代码:
的index.php
index.php
<?php
...
$url = "www.google.com";
$val = "Is PHP better than Perl?";
include("mixedcontent.txt");
...
?>
看起来效果很好。非常感谢大家。
在你的代码示例,'include'似乎不够。 – Passerby 2013-05-03 04:11:37
如果文本文件是本地的,'include'应该没问题。如果是外部的,我不确定'include'会因安全限制而起作用。 – Jared 2013-05-03 06:00:16
正如我在下面向Dharmesh所述的那样,我不相信我明白在这里如何使用include。我用include来导入php文件。在这里,我从另一个文件打印出混合内容(html + php)。我将不胜感激上面的例子或类似的使用包括,因为我不明白我可以如何取代eval并使用include打印混合内容。谢谢。 – user717236 2013-05-03 14:40:54