php函數不能用?
問題闡述
PHP 無法執行system()函數是什麼原因呢?
問題解答
PHP 無法執行system()函數,可能有以下幾種情況:
(1)Warning: system() has been disabled for security reasons
該錯誤是由於伺服器安全配置將system 函數關閉了,打開php.ini 文件,將disable_functions等號後面的system 去掉即可。
(2)Warning: system() [function.system]: Unable to fork
該錯誤是由於目前網站的執行帳號無法存取cmd.exe,找到Windows\system32\cmd .exe 屬性,新增目前網站的執行帳號權限或users 群組權限即可。
(3)在Web 存取下執行沒有任何回應也不報錯,使用php cli 命令列執行卻可以正常回傳結果,該錯誤一般是由Windows 系統路徑引起的,程式中可能是使用了絕對路徑去存取程序,例如:
system('D:\server\DLL\IECapt.exe --url=http://tech.cncms.com --out="D:\web\tt.fei.cn\htdocs\ttt\tech.png"');
此時用命令列執行結果正確,但用Web 存取就會傳回空白頁,沒有錯誤。
修改方法:將檔案的存取路徑改為相對路徑,並將IECapt.exe 複製到網站程式目前目錄下,並將程式碼改為:
system('IECapt.exe --url=http://www.baidu.com --out=t/tech.png');
3再次造訪頁面,就可以正常輸出了。
更多PHP相關知識,請造訪PHP中文網!
以上是php函數不能用的詳細內容。更多資訊請關注PHP中文網其他相關文章!