国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

基于php實現長連接的方法與注意事項的問題

2024-05-04 23:07:41
字體:
來源:轉載
供稿:網友

php可以通過set_time_limit(0);來取消php腳步超時限制,從而達到長連接的效果。

例子代碼如下:

復制代碼 代碼如下:


<?php

echo "每隔3秒輸出一次<br />";

set_time_limit(0); //保證php程序運行不超時退出

while(1) {

echo date("H:i:s")."<br />";

ob_flush();

flush(); //刷新并輸出PHP緩沖數據

sleep(3); //延遲3秒

}

?>

示例代碼2:

復制代碼 代碼如下:


set_time_limit(0);

header("Connection:Keep-Alive");

header("Proxy-Connection:Keep-Alive");

for($i=0;$i<60;$i++) {

print 'text'.$i.'<br>';

ob_flush();

flush();

sleep(1);

clearstatcache();

}


這里調用了ob_flush(); flush();來強制輸出數據到緩沖區,這樣就能在腳步返回之前及時返回數據到瀏覽器。另外不沖下flush和ob_flush的使用上有一些特別容易犯錯的地方,造成無法刷新輸出緩沖。

一. flush和ob_flush的正確順序,正確應是,先ob_flush再flush,如下:

ob_flush();

flush();

如果Web服務器的操作系統是windows系統,那順序顛倒或者不使用ob_flush()也不會出現問題。但是在Linux系統上就無法刷新輸出緩沖。

二. 使用ob_flush()前,確保前面的內容大小足夠4069字符。

一些Web服務器的output_buffering默認是4069字符或者更大,即輸出內容必須達到4069字符服務器才會flush刷新輸出緩沖,為了確保flush有效,最好在ob_flush()函數前有以下語句:

print str_repeat(" ", 4096);

以確保到達output_buffering值。

復制代碼 代碼如下:


for ($i=10; $i>0; $i--)

{

echo $i.'<br />';

ob_flush();

flush();

sleep(1);

}
ob_end_flush();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富源县| 兰溪市| 旺苍县| 府谷县| 厦门市| 姚安县| 抚松县| 赞皇县| 灵璧县| 宜城市| 江川县| 建瓯市| 阜新市| 安多县| 龙山县| 安丘市| 白山市| 田阳县| 政和县| 中西区| 陆川县| 福鼎市| 会昌县| 象州县| 灵台县| 嵊州市| 桦南县| 竹山县| 江油市| 海南省| 青田县| 黄平县| 清新县| 东乡县| 玛多县| 改则县| 长治市| 临沂市| 龙口市| 临沂市| 崇礼县|