PHP set_time_limit(0)長(zhǎng)連接的實(shí)現(xiàn)分析
更新時(shí)間:2010年03月02日 13:28:17 作者:
每次我們?cè)L問(wèn)PHP腳本的時(shí)候,都是當(dāng)所有的PHP腳本執(zhí)行完成后,我們才得到返回結(jié)果。如果我們需要一個(gè)腳本持續(xù)的運(yùn)行,那么我們就要通過(guò)php長(zhǎng)連接的方式,來(lái)達(dá)到運(yùn)行目的。
每個(gè)PHP腳本都限制了執(zhí)行時(shí)間,所以我們需要通過(guò) set_time_limit 來(lái)設(shè)置一個(gè)腳本的執(zhí)行時(shí)間為無(wú)限長(zhǎng);然后使用 flush() 和 ob_flush() 來(lái)清除服務(wù)器緩沖區(qū),隨時(shí)輸出腳本的返回值。
如下面這段腳本:
<?php
header("Content-Type: text/plain");
set_time_limit(0);
$infoString = "Hello World" . "\n";
while( isset($infoString) )
{
echo $infoString;
flush();
ob_flush();
sleep(5);
}
?>
當(dāng)我們執(zhí)行后,每隔5秒鐘,我們會(huì)得到一行 Hello World ,如果不按停止按鈕,瀏覽器會(huì)不停的一行一行繼續(xù)加載。
通過(guò)這一方法,我們可以完成很多功能,例如機(jī)器人爬蟲(chóng)、即時(shí)留言板等程序。
如下面這段腳本:
復(fù)制代碼 代碼如下:
<?php
header("Content-Type: text/plain");
set_time_limit(0);
$infoString = "Hello World" . "\n";
while( isset($infoString) )
{
echo $infoString;
flush();
ob_flush();
sleep(5);
}
?>
當(dāng)我們執(zhí)行后,每隔5秒鐘,我們會(huì)得到一行 Hello World ,如果不按停止按鈕,瀏覽器會(huì)不停的一行一行繼續(xù)加載。
通過(guò)這一方法,我們可以完成很多功能,例如機(jī)器人爬蟲(chóng)、即時(shí)留言板等程序。
您可能感興趣的文章:
- PHP使用Redis長(zhǎng)連接的方法詳解
- PHP長(zhǎng)連接實(shí)現(xiàn)與使用方法詳解
- PHP擴(kuò)展模塊memcached長(zhǎng)連接使用方法分析
- 基于php實(shí)現(xiàn)長(zhǎng)連接的方法與注意事項(xiàng)的問(wèn)題
- 基于HTTP長(zhǎng)連接的"服務(wù)器推"技術(shù)的php 簡(jiǎn)易聊天室
- PHP編程實(shí)現(xiàn)的TCP服務(wù)端和客戶端功能示例
- php實(shí)現(xiàn)TCP端口檢測(cè)的方法
- 詳解PHP Swoole長(zhǎng)連接常見(jiàn)問(wèn)題
相關(guān)文章
PHP與Perl之間知識(shí)點(diǎn)區(qū)別整理
在本篇文章里小編給大家分享了關(guān)于PHP與Perl的卻別以及相關(guān)知識(shí)點(diǎn)整理,有興趣的朋友們學(xué)習(xí)下。2019-03-03php過(guò)濾所有的空白字符(空格、全角空格、換行等)
這篇文章主要介紹了php替換過(guò)濾所有的空白字符,包括空格、全角空格、換行等,感興趣的小伙伴們可以一起學(xué)習(xí)學(xué)習(xí)。2015-10-10php更新mysql后獲取影響的行數(shù)發(fā)生異常解決方法
mysql_affected_rows函數(shù)當(dāng)UPDATE前后的數(shù)據(jù)一樣時(shí)會(huì)返回異常值,接下來(lái)為大家介紹個(gè)簡(jiǎn)單的解決方法感興趣的朋友可以參考下哈2013-03-03php 中英文語(yǔ)言轉(zhuǎn)換類(lèi)代碼
突然想做個(gè)中英文的功能試一下,只是把一些常用且有規(guī)律的詞匯比如 ‘評(píng)論’ ,時(shí)間單位(幾秒幾小時(shí)前這些)可以自由的轉(zhuǎn)化。2011-08-08PHP封裝的簡(jiǎn)單連接MongoDB類(lèi)示例
這篇文章主要介紹了PHP封裝的簡(jiǎn)單連接MongoDB類(lèi),涉及php針對(duì)MongoDB數(shù)據(jù)庫(kù)的簡(jiǎn)單連接、數(shù)據(jù)插入、查詢等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02php下載文件超時(shí)時(shí)間的設(shè)置方法
這篇文章W主要介紹了php下載文件超時(shí)時(shí)間的設(shè)置方法2016-10-10mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的區(qū)別
一直以來(lái),有很多初學(xué)者搞不懂這些Mysql中從查詢結(jié)果集中取得數(shù)據(jù)的函數(shù)之間有什么區(qū)別,今天我就來(lái)秀一把,在秀之前先給大家一段PHP實(shí)例2009-04-04