2013-12-17 73 views
1

什麼可能是這種簡單的代碼的原因:很慢捲曲相比,瀏覽器

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://somepage.com/path'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_VERIFYPEER, false); 
$output = curl_exec($ch); 

是一貫1+秒慢於Firefox是?

我已經測試的Firefox使用

$timestart = microtime(true); 
echo microtime(true) - $timestart; 

和螢火蟲(淨標籤)PHP代碼。

https://somepage.com/path返回普通的JSON,它在Firefox上需要大約500ms,而在PHP中使用cURL需要1500個。

+0

您是否驗證過Firefox沒有緩存頁面? – Lumbendil

+0

@lumbendil是的,我做了,除了每次刷新頁面時頁面都改變了。 – user3110491

回答

0

您可以嘗試在cURL中發送Firefox的用戶代理。

1
Accept-Encoding gzip, deflate 

Firefox總是向遠程站點要求壓縮內容(如果可用)。我想你的情況,該網站是通過瀏覽器返回壓縮的HTML。但是,當使用curl獲取html時,您沒有在代碼中設置任何類似的內容。

試着在你的捲髮代碼上加上這個,並再次檢查性能。

curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); 

如果沒有發現變化,則嘗試在下面一個。

curl_setopt($ch, CURLOPT_ENCODING, ""); // supports all