国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP定時執行任務

2020-03-22 17:51:14
字體:
來源:轉載
供稿:網友
  • 這一節主要討論PHP定時執行任務的實現方法。

    首先,每個PHP腳本都限制了執行時間,所以我們需要通過 set_time_limit 來設置一個腳本的執行時間為無限長。php默認的執行時間是30秒,通過set_time_limit(0)可以讓程序無限制的執行下去 。
    解決了執行時間的問題,但如果客戶端斷開了怎么辦呢?使用函數 ignore_user_abort(),即使Client斷開(如關掉瀏覽器),PHP腳本也可以繼續執行。除非 apache 等服務器重啟,該PHP腳本將一直處于執行的狀態。

    語法:
    1、int ignore_user_abort ([ string $html' target='_blank'>value ] )函數:
    設置客戶端斷開連接時是否中斷腳本的執行。PHP以命令行腳本執行時,當腳本終端結束,腳本不會被立即中止,除非設置 value 為 TRUE,否則腳本輸出任意字符時會被中止。
    如果設置了 value 值,函數會把 ignore_user_abort ini的值設置為 value。 如果未設置該值,函數不會改變設置,僅會返回之前的設置。
    注意:在PHP嘗試發送信息到客戶端之前,不會檢測到用戶是否已中斷連接。 僅使用 echo 語句不能確保信息已發送。
    2、void set_time_limit ( int $seconds )函數:
    設置允許腳本運行的時間,單位為秒。如果超過了此設置,腳本返回一個致命的錯誤。默認值為30秒,或者是 php.ini 中max_execution_time被定義的值(如果此值存在)。
    當此函數被調用時,set_time_limit()會從零開始重新啟動超時計數器。換句話說,如果超時默認是30秒,在腳本運行了了25秒時調用 set_time_limit(20),那么,腳本在超時之前可運行總時間為45秒。
    注意:當php運行于安全模式時,此功能不能生效。除了關閉安全模式或改變php.ini中的時間限制,沒有別的辦法。

    接下來,我們來看一個例子:
    --------------------------------------------------------------------
    <?php
    ignore_user_abort(); //關掉瀏覽器,PHP腳本也可以繼續執行.
    set_time_limit(0); // 通過set_time_limit(0)可以讓程序無限制的執行下去

    function write_txt()
    {
    if(!file_exists("test.txt"))
    {
    $fp = fopen("test.txt","wb");
    fclose($fp);
    }
    $str = file_get_contents('test.txt');
    $str .= "/r/n".date("H:i:s");
    echo $str;
    $fp = fopen("test.txt","wb");
    fwrite($fp,$str);fclose($fp);
    }

    function do_cron()
    {
    $interval=60*1; // 每隔1分鐘運行
    sleep($interval);
    write_txt();
    }

    do{
    do_cron();
    }while(true);
    ?>
    --------------------------------------------------------------------
    代碼執行結果:

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 广平县| 札达县| 称多县| 彩票| 洛浦县| 周宁县| 黄浦区| 景泰县| 西安市| 兴文县| 凤山市| 木兰县| 财经| 临城县| 寿宁县| 蕉岭县| 北海市| 武定县| 清镇市| 平和县| 兴和县| 西盟| 从江县| 拜泉县| 来安县| 六枝特区| 扎赉特旗| 额济纳旗| 长子县| 紫金县| 四川省| 万山特区| 西安市| 谷城县| 龙里县| 涿鹿县| 兴宁市| 屯昌县| 兴仁县| 贡嘎县| 张家川|