我必須編寫一個PHP腳本,作爲另一個HTTP服務器的客戶端。此服務器忽略HTTP連接:關閉標頭,並保持TCP連接處於打開狀態,除非它被客戶端關閉。這是我的困境。我(客戶端)必須決定HTTP請求/響應何時完成,然後關閉連接。簡單地使用:檢測HTTP數據包的結尾
$ data = file_get_contents($ url);
..將無法正常工作,因爲file_get_contents僅在連接超時(默認30秒)到達時纔會返回。
所以我必須寫我自己讀 - 像這樣的(僞代碼)循環:
$sock = fsockopen(...);
$data = '';
while($line = fgets($sock)) {
$data .= $line;
if(http_package_recieved()) {
break;
}
}
不幸的是,在響應沒有Content-Length頭。我的問題是,如何在功能
http_package_recieved()
...應該像。
電賀 托爾斯滕
這個問題今天被下調了 - 發佈後的5年。 downvoter可以解釋背後的原因嗎? – hek2mgl 2015-06-10 12:32:30