讓我們直接進入它。用於在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