一、用PHP定時執行特定任務

1. Windows排程執行BAT檔

參考資料:在WINDOWS中設置計畫任務執行PHP文件的方法

寫一個.bat檔案
D:\php\php.exe -q D:\website\test.php
建立WINDOWS排程工作:
(WIN7)開始→控制台→系統管理工具→排程工作
瀏覽文件夾選擇上面的bat文件
設置時間和密碼(登錄WINDOWS的)
保存即可。

2. Linux crontab排程執行(手邊無LINUX系統跳過)

3. PHP檔

參考資料:PHP定時執行計畫任務的多種方法小結

因為PHP是設計為伺服端工作,定時任務要解決三個問題:
(1)PHP腳本執行時間預設最長限制30mins,解決辦法:set_time_limit();或者修改PHP.ini 設置max_execution_time時間(不推薦)
(2) 如果客戶端瀏覽器關閉,程序可能就被迫終止,解決辦法:ignore_user_abort即使關閉頁面依然繼續執行
(3) 如果程序一直執行很有可能會消耗大量的資源,解決辦法使用sleep使用程序休眠一會,然後再執行

範例如下

<?php 
ignore_user_abort();//關掉瀏覽器,PHP腳本也可以繼續執行. 
set_time_limit(3000);// 通過set_time_limit(0)可以讓程序無限制的執行下去 
$interval=5;// 每隔5s運行 

//方法1--死循環 
do{ 
echo '測試'.time().'<br/>'; 
sleep($interval);// 等待5s 
}while(true); 

//方法2---sleep 定時執行 
require_once './curlClass.php';//引入文件 

$curl = new httpCurl();//實例化 
$stime = $curl->getmicrotime(); 
for($i=0;$i<=10;$i++){ 

echo '測試'.time().'<br/>'; 
sleep($interval);// 等待5s 

} 
ob_flush(); 
flush(); 
$etime = $curl->getmicrotime(); 
echo '<hr>'; 
echo round(($etime-stime),4);//程序執行時間 

二、用PHP爬資料

範例:經濟部工業局爬工廠資料程式


三、Facebook FQL & PHP SDK

Comments

comments powered by Disqus