程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php ignore_user_abort() 函數設置與客戶機斷開腳本繼續執行

php ignore_user_abort() 函數設置與客戶機斷開腳本繼續執行

編輯:關於PHP編程

php ignore_user_abort() 函數設置與客戶機斷開腳本繼續執行


ignore_user_abort() 可以實現當客戶端關閉後仍然可以執行PHP代碼,可保持PHP進程一直在執行,可實現所謂的計劃任務功能與持續進程,只需要開啟執行腳本,除非 apache 等服務器重啟或有腳本有輸出,該PHP腳本將一直處於執行的狀態,初看很實用,不過代價是一個PHP執行腳本的持續進程,開銷很大,但卻可以 實現很多意想不到的功能。

定義和用法

ignore_user_abort() 函數設置與客戶機斷開是否會終止腳本的執行。

本函數返回 user-abort 設置的之前的值(一個布爾值)。

語法

ignore_user_abort(setting)

參數 描述

setting 可選。如果設置為 true,則忽略與用戶的斷開,如果設置為 false,會導致腳本停止運行。如果未設置該參數,會返回當前的設置。

注釋:PHP 不會檢測到用戶是否已斷開連接,直到嘗試向客戶機發送信息為止。簡單地使用 echo 語句無法確保信息發送,參閱 flush() 函數。

使用示例:

(1)結合set_time_limit()函數實現一個循環腳本執行任務

<?php
ignore_user_abort();
set_time_limit(0);
$interval=60*15;//說明:每隔15分鐘循環執行
do{
//執行的業務
}while(true);

(2)自定義實現文件輸出並跟蹤ignore_user_abort()函數的執行結果

<?php
ignore_user_abort(TRUE);
set_time_limit(0);
$interval=10;
$stop=1;
do{
    if($stop==10) break;
    file_put_contents('phpernote.com.php',' Current Time: '.time().' Stop: '.$stop);
    $stop++;
    sleep($interval);
}while(true);

打開 phpernote.com.php 文件,文件內容如下:

 Current Time: 1273735029 Stop: 9

其原理是即使客戶端終止腳本,仍然每隔10秒鐘執行一次,並打印出當前時間與終止點,這樣就可以測試出ignore_user_abort()函數的具體效果。

通過實例發現使用 ignore_user_abort()函數在實現計劃任務,持續進程等方面的業務時候還是非常實用的。

您可能感興趣的文章

  • thinkphp頁面跳轉(successerror)如何設置跳轉等待時間
  • php window平台模擬checkdnsrr函數檢測email是否真實存在
  • php利用filter函數驗證郵箱、url和ip地址的方法
  • Jquery等待ajax執行完畢再繼續執行下面代碼的效果
  • php get_headers函數的作用及用法
  • 用PHP函數memory_get_usage獲取當前PHP內存消耗量以實現程序的性能優化
  • php用ZipArchive函數實現文件的壓縮與解壓縮
  • php如何判斷當前的操作系統是linux還是windows

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved