2013-05-07 42 views
2

我正在編寫一個PHP腳本,它將執行一些處理,但我只希望它在腳本尚未運行時運行。我也只希望腳本運行最多5分鐘。php-設置腳本超時並調用一個函數來達到時間限制時的清理

我知道我可以使用set_time_limit設置超時時間,但這樣做不會刪除我在執行過程中創建的鎖定文件。

當達到時間限制時,他們是否可以調用函數以便我可以執行清理?

+0

退出循環中,力RE-重定向? – samayo 2013-05-07 01:30:01

回答

2

在測試環境中嘗試了這一點,得到了它與下面的(錯誤報告關閉+關機功能)工作:

<?php 

$test = function() { 
    print("\n\nOOPS!\n\n"); 
}; 

error_reporting(0); 
set_time_limit(1); 
register_shutdown_function($test); 

while (true) { 
} 
+0

請注意,這將在任何致命錯誤時調用關閉功能。我想這就是你要找的。如果你願意,你也可以保持error_reporting,它仍然會調用關機功能。 – 2013-05-07 01:34:18

+0

謝謝你。當我在我的代碼中調用'exit'時,是否也會調用'register_shutdown_function'? – Lock 2013-05-07 02:28:08

+0

別擔心,我只是RTFM,它確實會。非常感謝! – Lock 2013-05-07 02:35:11