本文目錄一覽:
- 1、PHP實現定時任務的幾種方式
- 2、PHP當中的 sleep()函數問題
- 3、php sleep函數放入循環為什麼會超時
- 4、php怎麼實現延時執行代碼且訪問不過期
- 5、PHP的sleep函數
- 6、關於php中sleep函數
PHP實現定時任務的幾種方式
一. 簡單
?php
ignore_user_abort();//關掉瀏覽器,PHP腳本也可以繼續執行.
set_time_limit(0);// 通過set_time_limit(0)可以讓程序無限制的執行下去
ini_set(‘memory_limit’,’512M’); // 設置內存限制
$interval=60*30;// 每隔半小時運行
do{
//ToDo
sleep($interval);// 等待5分鐘
}
while(true);
二. 簡單 可控型
config.php
?php
return 1;
?
cron.php
ignore_user_abort();//關掉瀏覽器,PHP腳本也可以繼續執行.
set_time_limit(0);// 通過set_time_limit(0)可以讓程序無限制的執行下去
$interval=60*30;// 每隔半小時運行
do{
$run = include ‘config.php’;
if(!$run) die(‘process abort’);
//ToDo
sleep($interval);// 等待5分鐘
}
while(true);
三. 簡單 改進型
?php
$time=15;
$url=”http://”.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’];
/*
function
*/
sleep($time);
file_get_contents($url);
?
PHP當中的 sleep()函數問題
同學,你要先理解php是在伺服器端執行的
你的這個結果,卻是被客戶端瀏覽器解析的
所以,伺服器執行了 輸出1 睡眠3 輸出2 用時3秒
然後返回了最終的結果
而,同時,瀏覽器是不能用html來動態顯示內容的
你需要使用ajax
處理邏輯是:
ajax 控制js向伺服器發報,伺服器返回顯示時間的頁面,頁面用js動態加入div中
這個過程用js控制,每3秒自調用一次
即是在js function中添加setTimeout( “方法名() “, 3000);
當然,還有另外一個方法,上面的方法能獲得的是伺服器端的時間,下面這個則是客戶端的時間,處理邏輯如下:
和上個方法一樣,寫一個js的3秒間隔自調用函數,然後該函數會改變某個div的值,值顯示為當前時間。
其實還有個方法,使用js每隔3秒來刷新當前頁面。
但無論哪種方法 都用不到sleep
php sleep函數放入循環為什麼會超時
一個PHP程序執行時間是有限的,一般默認是30秒。
如果將sleep放到循環中,就是sleep很多次,造成頁面執行超時。
具體問題需要根據你的代碼來判斷,最好發一下源代碼
php怎麼實現延時執行代碼且訪問不過期
用php-cli執行這種長時間阻塞的代碼..沒有終止時間。
對於網站用的php執行檔要在php.ini中間改最大時長。
PHP的sleep函數
sleep() 函數延遲代碼執行若干秒
你關閉瀏覽器後,伺服器端當然仍會執行,只是你看不到而已
關於php中sleep函數
定義和用法:
sleep() 函數延遲代碼執行若干秒。
語法:sleep(seconds)
參數:seconds 描述:必需。以秒計的暫停時間。
返回值:
若成功,返回 0,否則返回 false。
錯誤/異常:
如果指定的描述 seconds 是負數,該函數將生成一個 E_WARNING。
例子:
?php
echo date(‘h:i:s’) . “br /”;
//暫停 10 秒
sleep(10);
//重新開始
echo date(‘h:i:s’);
?
輸出:
12:00:08
12:00:18
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/242584.html