1
我試圖限制shell_exec在PHP中的最大執行時間爲20秒,並獲取在此期間產生的任何輸出。如果shell_exec在少於20秒內完成,則腳本應直接進行。限制shell_exec的執行時間,並抓住任何輸出產生
更具體地說,我正在開發一個迭代通過大量的Subversion版本庫修訂版的函數。對於每個修訂版本,它都會讀取svn diff並計算添加的行數。問題是,如果在修訂中提交了非常大的文件,腳本將會掛起。因此,我試圖限制每個svn diff命令的執行時間。
popen()與sleep()組合並不是一個選項,因爲它似乎使腳本在每次迭代中睡眠20秒,而這種迭代在100次迭代中不可行。設置max_execution_time也不是一個選項,因爲它會返回致命錯誤。