最近因項(xiàng)目需要,引出一個議題:如何執(zhí)行字符串的php代碼(php和html混寫)。
注:傳統(tǒng)情況下,php代碼存儲在文件中,直接運(yùn)行文件即可。以下討論的情況是,如果php代碼是從數(shù)據(jù)庫中獲取到,那么要如何運(yùn)行?

最直觀的方案

  • 將字符串代碼寫到臨時文件,然后在項(xiàng)目中include該文件,執(zhí)行完成再刪除這個臨時文件

  • system exec 之類的系統(tǒng)函數(shù)

  • php函數(shù)eval (會不會有安全問題?)

進(jìn)一步的瞎想

  • 把字符串代碼當(dāng)做參數(shù),傳入到php的cli或者php-fpm中運(yùn)行

  • 重新定義include,讓include可以直接操作字符串

幾種思路的驗(yàn)證