2013-06-30 26 views
0

我已經接近我服務器上的最大執行時間,我不允許更改它。該腳本下載數據並將其寫入文件。潛在的問題是,在將文件寫入磁盤期間,腳本可以達到最大執行時間。因此,我必須知道在達到exec的最大允許時間後是否終止腳本。是立即可以導致存儲在磁盤上的文件不完整或腳本在最後的指令/函數結束後立即終止,因此我可以確定磁盤上的所有文件都是有效的?

第二個問題與該主題:如果腳本會後的fwrite()函數被終止而不執行FCLOSE
會發生什麼() - 它可能會導致在創建磁盤不完整(無效)的文件?

第三屆問題
如果腳本沒有立即終止則其當前指令後終止結束或調用一個函數?因爲如果腳本在當前指令之後終止,那麼執行fwrite()將無法到達該函數的結尾並停止在函數體內的某處。如果PHP腳本達到最大允許執行時間,它是在當前指令結束後立即還是立即終止?

回答

0

最長執行時間不受系統調用,流 操作等

你的Web服務器可以有其他的超時配置,也可能 中斷PHP的執行。 Apache有一個Timeout指令,IIS有一個 CGI超時函數。兩者默認爲300秒。有關特定詳細信息,請參閱您的Web服務器 文檔。

看到PHP manual: Runtime configuration 從我的結論是fwrite的通話將正常執行到結束。服務器(例如apache)也可以強制腳本停止。在這種情況下,fwrite可能會被中斷。但是因爲它是默認的300,所以你不會陷入超時。

0

立即終止。

對第二個問題的回答:不,fclose()沒有必要。