首頁  >  文章  >  後端開發  >  PHP定時執行的方法

PHP定時執行的方法

墨辰丷
墨辰丷原創
2018-06-05 16:53:322463瀏覽

本篇主要介紹PHP定時執行的方法,有興趣的朋友參考下,希望對大家有幫助。

PHP定時執行的三種方式實作

  • 1、windows 的排程任務

  • 2、linux的腳本程序

  • 3、讓web瀏覽器定時刷新

#具體實作
1、windows排程任務

PHP很少在win伺服器上跑,具體實作也不再深究,看網路上實作的原理大概是寫bat腳本,然後讓window任務加入執行這個bat腳本。
2、linux 的腳本實作這裡主要使用到crontab這個指令,
使用方式:

程式碼如下:

crontab   filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

說明:

crontab是用來讓使用者在固定時間或固定間隔執行程式之用

使用crontab寫shell腳本,然後讓PHP呼叫shell,這個是利用linux的特性,應該還不包括PHP自身語言的特性

3、PHP實作定時執行排程任務使用php讓瀏覽器刷新需要解決幾個問題
PHP腳本執行時間限制,預設的是30m 解決方法:set_time_limit();或修改PHP.ini 設定max_execution_time時間(不建議)
如果客戶端瀏覽器關閉,程式可能就被迫終止,解決方案:ignore_user_abort即使關閉頁面依然正常執行
如果程式一直執行很有可能會消耗大量的資源,解決辦法使用sleep使用程式休眠一會,然後在執行
PHP定時執行的程式碼:

<?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=5;// 每隔5s运行
 
//方法1--死循环
do{
  echo &#39;测试&#39;.time().&#39;<br/>&#39;; 
  sleep($interval);// 等待5s  
}while(true);
 
//方法2---sleep 定时执行
  require_once &#39;./curlClass.php&#39;;//引入文件
   
  $curl = new httpCurl();//实例化
  $stime = $curl->getmicrotime();
  for($i=0;$i<=10;$i++){
     
    echo &#39;测试&#39;.time().&#39;<br/>&#39;; 
    sleep($interval);// 等待5s
     
  }
  ob_flush();
  flush();
  $etime = $curl->getmicrotime();
  echo &#39;<hr>&#39;;
  echo round(($etime-stime),4);//程序执行时间

測試的時候發現這個效率並不是很高。

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

相關推薦:

PHP實作函數引用傳回的實例詳解

PHP入門教學影像處理技巧實例分享

PHP入門教學之物件導向基本概念實例詳解

以上是PHP定時執行的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn