PHP積極斷開與瀏覽器的連接
來源:易賢網 閱讀:2214 次 日期:2014-09-18 10:28:15
溫馨提示:易賢網小編為您整理了“PHP積極斷開與瀏覽器的連接”,方便廣大網友查閱!

PHP主動斷開與瀏覽器的連接

曾經整理過一篇《關于PHP連接處理中set_time_limit()、connection_status()和ignore_user_abort()深入解析》,是講解瀏覽器客戶端斷開時,服務器PHP腳本的處理。

這篇文章,將講解一下服務器PHP腳本怎樣主動斷開與瀏覽器的連接,主要方法是使用http協議header中的Content-Length和Connection

Content-Length的作用:瀏覽器接收到指定Content-Length大小的消息實體后,則會斷開與服務器的連接。

Connection的作用:瀏覽器接收到Connection的Close或Keep-Alive后,決定是關閉連接還是繼續(xù)使用當前的連接進下一次請求。

/**

* 自動斷開與瀏覽器的連接

* jiaofuyou

*/

echo '1234567890'; //向瀏覽器輸出的內容

{//斷開連接的代碼

$size=ob_get_length();

header("Content-Length: $size"); //告訴瀏覽器數據長度,瀏覽器接收到此長度數據后就不再接收數據

header("Connection: Close"); //告訴瀏覽器關閉當前連接,即為短連接

ob_flush();

flush();

}

error_log(date("[Y-m-d H:i:s]")." > "."start" ."n", 3 , "/usr/local/apache2219/logs/php_log");

//斷開連接后的執(zhí)行長時間操作

sleep(5);

echo 'test213';//瀏覽器接收不到了

error_log(date("[Y-m-d H:i:s]")." > "."end" ."n", 3 , "/usr/local/apache2219/logs/php_log");

//可以查看錯誤日志是否延遲5秒后執(zhí)行.

?>

說明:

1、單獨使用Content-length實際上連接并未斷開,僅是瀏覽器停止接收信息,Connection: Close才是真正的告訴瀏覽器關閉連接。

2、指定Content-Length 對于 file_get_contents 沒有任何意義;若想使用,請用curl。

如果想讓PHP不停的向瀏覽器輸出內容:

echo "1234567890"

ob_flush();

flush();

這樣是不會立刻輸出到瀏覽器的,可以這樣

echo "1234567890

"

//有換行時會立刻輸出到瀏覽器

ob_flush();

flush();

或者:

echo "1234567890"

print str_pad("",10000); //輸出足夠多的內容

ob_flush();

flush();

更多信息請查看IT技術專欄

更多信息請查看網絡編程
易賢網手機網站地址:PHP積極斷開與瀏覽器的連接

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網