每次我們訪問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 ,如果不按停止按鈕,浏覽器會不停的一行一行繼續加載。
通過這一方法,我們可以完成很多功能,例如機器人爬蟲、即時留言板等程序。