PHP中用set_time_limit(0)長連接的實現

每次我們訪問PHP腳本的時候,都是當所有的PHP腳本執行完成後,我們纔得到返回結果。如果我們需要一個腳本持續的運行,那麼我們就要通過php長連接的方式,來達到運行目的。

每個PHP腳本都限制了執行時間,所以我們需要通過 set_time_limit 來設置一個腳本的執行時間爲無限長;然後使用 flush() 和 ob_flush() 來清除服務器緩衝區,隨時輸出腳本的返回值。

如下面這段腳本:

<?php
header("Content-Type: text/plain");
set_time_limit(0);

$infoString = "Hello World" . "\n";
while( isset($infoString) )
{
echo $infoString;
flush();
ob_flush();
sleep(5);
}
?>

當我們執行後,每隔5秒鐘,我們會得到一行 Hello World ,如果不按停止按鈕,瀏覽器會不停的一行一行繼續加載。

通過這一方法,我們可以完成很多功能,例如機器人爬蟲、即時留言板等程序。


http://www.chinaz.com/program/2010/0302/107498.shtml

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章