哪個PHP函數可以用來評估一個字符串,而不是eval()的PHP代碼?我不能使用eval()函數。哪個PHP函數用於評估字符串爲PHP代碼?
回答
的任意代碼的動態執行不是很好的事,檢查出很好的答案在When is eval evil in php?
,但如果你要做到這一點,並採取安全考慮,這裏有幾種方法可以做到這一點:
-
在文件
- eval
-
- 放碼,並將其納入
第一和第二是作爲create_function使用eval幾乎是相同的,所以它們不是爲特定的情況下,最後一個是有點不同,你需要有寫入權限
顯然,這三種方法並不相同,只有第一種方法適合OP的要求。 –
@StefanoSanfilippo 1和2是等價的,第三名差不多,所以我沒有看到你的點 –
我的虛擬主機不允許eval – user2883525
請注意,在這種執行代碼由於剝削原因,方式非常糟糕。
然而,而是採用eval()
,你可以嘗試從你要eval
代碼編寫的文件中使用output buffering。
編輯:
寫入文件,需要/運行它,並保存其輸出爲一個變量。
$filename = 'randomlygeneratedfilename.php';
$handle = fopen($filename , 'w');
//$data is the PHP code
fwrite($handle, $data);
fclose($handle);
ob_start();
require_once($filename);
$output = ob_get_contents();
ob_end_clean();
$output
現在將包含來自PHP代碼
unlink($filename);//Deleting the temp file containing the code
你能告訴我如何做dat嗎? – user2883525
我剛剛編輯我的文章做這個 – PhilTrep
它沒有,我在我的答案不清楚,但做任何事情是不好的做法,特別是在處理用戶輸入時,我編輯了我的答案,正確地說明了這一事實,感謝您指出出來。我的回答只是指出了一個可能的做法(儘可能不好),去做OP想要的事情。 – PhilTrep
- 1. 評估一個字符串爲PHP代碼?
- 2. 用PHP評估一個字符串
- 3. PHP評估字符串 - 替代?
- 4. 評估字符串數組PHP
- 5. 使用哪個PHP字符串函數?
- 6. 從評估的PHP代碼返回字符串/ int?
- 7. PHP字符串評估方法
- 8. 評估像Java代碼的字符串
- 9. 將字符串數組用於評估
- 10. PHP + HTML代碼的PHP評估問題
- 11. 從字符串評估數學函數
- 12. PHP strtotime函數評估
- 13. JavaScript中的字符串評估函數
- 14. 將Perl字符串評估爲零僅適用於數字
- 15. 用於評估字符串的NSPredicate
- 16. IDL可以評估字符串爲代碼嗎?
- 17. 評估字符串與PHP中的整數有什麼區別?
- 18. PHP源代碼中增加字符串的代碼在哪裏?
- 19. PHP:如何{{字符串}}成PHP代碼
- 20. 用php代碼或函數替換shortcode字符串?
- 21. 無法在PHP中使用eval()評估字符串
- 22. 替代的eval(),用於評估字符串表達式
- 23. 選擇函數的子集作爲字符串&評估
- 24. 用於在PHP腳本中動態評估混合內容字符串(html + php)的eval的替代方案
- 25. php評估函數和性能
- 26. 評估php內部的函數,如果
- 27. 用於評估百分比變化的PHP函數
- 28. 如何評估一個函數傳遞的字符串在C#
- 29. Python:如何評估一個函數是字符串?
- 30. {if}個評估在一個字符串
好輸出,1)爲什麼*不能*您使用'eval'? (找到合理的,因爲它會啓發)2)什麼是*實際*問題? – user2864740
*請不要那樣做*。代碼評估將導致在...中的利用率......也許幾納秒:)如果它被禁用(並且大多數PHP設置禁用它),那是有原因的。相反,請告訴我們您的編碼問題。你需要什麼'eval'? –
我冒這個險。 @ user2864740我的虛擬主機不允許eval() – user2883525