php逾時時間

來源:互聯網
上載者:User

標籤:通過   狀態   修改   on()   參數   指令碼逾時   lis   有一個   有意思   

PHP指令碼的執行有三種狀態:

  • 0 - NORMAL(正常)
  • 1 - ABORTED(異常退出)
  • 2 - TIMEOUT(逾時)

NORMAL 狀態為正常執行,ABORTED狀態為用戶端終端連結,TIMEOUT狀態為PHP執行時間超出時限。

那麼問題來了:PHP的執行時限是多少呢?

PHP內部有一個計時器,預設的執行時間是30秒,這個值可以通過修改php.ini中的max_excution_time或httpd.conf設定中對應的“php_value max_execution_time”參數或使用PHP的set_time_limit()函數來更改。當指令碼逾時時就會退出。

不過有個問題需要注意一下:set_time_limit()函數只有在非安全模式下才能使用。

 

還有一個有意思的事情:

在用戶端中斷串連的時候可以設定PHP繼續執行,因為有時候讓指令碼完整的運行會帶來很多方便,即使沒有遠程瀏覽器接受指令碼的輸出。預設情況下遠程用戶端連結中斷指令碼即會退出,可以通過 php.ini 的ignore_use_abort 或 httpd.conf 中對應的 “php_value ignore_user_abort” 以及 PHP函數 ignore_user_abort() 控制指令碼忽略使用者退出,讓指令碼繼續執行。不過這就可能會出現ABORTED、TIMEOUT兩種狀態同時存在的情況(PHP允許這兩種狀態同時存在),此時通過 connection_status() 函數檢查指令碼狀態時返回的是3,並且通過 register_shutdown_function()  函數設定的程式關閉出發程式會被執行。

“程式關閉出發程式”就是:

如果在遠程用戶端連結中斷時就讓指令碼停止執行,並且你想在這一事件發生時執行特定的操作,那麼你可以使用 register_shutdown_function()  函數設定。

 

php逾時時間

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.