我,當我試圖使用的fsockopen並與fgets得到一個網頁的內容的問題。我可以很容易地從Web服務器接收的標題如下:PHP的fsockopen與fgets變得太慢
HTTP/1.1 200 OK
[cache-control] => private
[content-type] => text/plain; charset=utf-8
[server] => Microsoft-IIS/7.0
[x-aspnet-version] => 2.0.50727
[x-powered-by] => ASP.NET
[date] => Sat, 23 Jul 2011 10:36:57 GMT
[connection] => close
[content-length]=> 30072
[vary] => Accept-Encoding [content-encoding] => gzip
我的代碼如下:
$fp = @fsockopen(「www.abc.com」, 80, $errno, $errstr, 30);
fwrite($fp, $request);//$request is my predefined header including path and cookies
$lines=」」;
while (!feof($fp))
{
Echo 「fgets start at 」.date(「H:i:s」).」\n」;
$line = fgets($fp, 4096);
Echo strlen($line) .」\n」;
Echo 「fgets end at 」.date(「H:i:s」) .」\n」;
$lines +=$line;
}
fclose($fp);
輸出是這樣的:
……
fgets start at 12:23:45
219
Fgets end at 12:23:47
……
我真的不知道爲什麼需要2秒才能得到219字節的數據,這太慢了。 爲了獲得整個頁面,包括數百個fgets迭代,它花費40秒。而如果你使用Firefox,它只是一個第二..
我想知道是什麼原因導致的與fgets變得太慢。
感謝您的閱讀。
嗯,多少時間'的file_get_contents(「www.abc.com」 )'? – Zyava
您是否找到@ cn2500的解決方案? –