PHP執行定時任務
1.當PHP像文件寫入信息的時候
<?php
for ($i=0; $i < 10; $i++) {
$str="我是第".$i."條"."\r\n";
file_put_contents("a.txt",$str,8);
}
這樣就可以換行,linux使用"\n"就可以,windows"\r\n".
我是第0條
我是第1條
我是第2條
我是第3條
我是第4條
我是第5條
我是第6條
我是第7條
我是第8條
我是第9條
<?php
ignore_user_abort();//關閉瀏覽器后,繼續執行php代碼
set_time_limit(0);//程序執行時間無限制
$sleep_time = 5;//多長時間執行一次
//$switch為include 'jsonout.php'的返回值
//return 1;//1執行,0不執行
$switch = include 'jsonout.php';
$i = 1;
while($switch){
//這里是想要循環執行的語句
$t = '我是第';
$r = '條';
$msg=$t.$i.$r."\r\n";
file_put_contents("a.txt",$msg,8);//寫入信息
sleep($sleep_time);//等待時間,進行下一次操作。
$i++;
}
exit();
?>
原文鏈接:http://blog.csdn.net/leafgw/article/details/50800153
現在對用到的知識進行解析:
Uslepp()是推延執行 sleep()暫停
1.int ignore_user_abort ([ string $value ] )
ignore_user_abort只是忽略用戶關閉操作,如果設置為 true,則忽略與用戶的斷開,如果設置為 false,會導致腳本停止運行。
一般都是用ignore_user_abort配合sleep來完成自動計划任務,但是這些都沒有操作系統自帶的計划任務來得強
它的狀態,只要執行一句ignore_user_abort();這個就能在頁面上看到它是返回0或1!
2.set_time_limit — 設置腳本最大執行時間
設置允許腳本運行的時間,單位為秒。如果超過了此設置,腳本返回一個致命的錯誤。默認值為30秒,最大的執行時間,單位為秒。如果設置為0(零),沒有時間方面的限制。
3.ob_flush()和flush()的區別
“ob_flush()和flush()的區別。前者是把數據從PHP的緩沖中釋放出來,后者是把不在緩沖中的或者說是被釋放出來的數據發送到瀏覽器。所以當緩沖存在的時候,我們必須ob_flush()和flush()同時使用。正確使用的順序是:先用ob_flush(),后用flush()
str_repeat — 重復一個字符串
說明
string str_repeat ( string $input , int $multiplier )
返回 input 重復 multiplier 次后的結果。
<?php
echo str_repeat('哈哈哈哈哈哈' ,1000);
for($i=0;$i<3;$i++) {
ob_flush();
flush();
sleep(3);
}
?>
