2017-09-11 91 views
-1

我有獲得網頁大小的代碼。獲取網頁的下載大小

問題與此代碼,它沒有返回頁面大小,如果該網站有HTTPS

如何獲得URL或網頁的總規模在PHP

$url = 'facebook.com';   
$curl = curl_init($url);  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);  
$subject = curl_exec($curl); 
print("Download size: " . curl_getinfo($curl, CURLINFO_SIZE_DOWNLOAD) .'<br>'); 

回答

1

無論你使用HTTPS不應影響對curl_getinfo的任何後續調用。

我懷疑這裏的問題是,你沒有指定Curl應該遵循重定向 - 取facebook.com實際上返回301重定向到https://facebook.com/。除非你告訴Curl它應該遵循它,否則它會在第一次請求後放棄。在這種情況下,因爲響應只是一個重定向頭,所以主體是空的,因此你的0字節大小。

如果指定

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 

那麼它會跟隨重定向,你會(對我來說至少182227,)得到正確的文件大小。

+0

$ url ='https://facebook.com/'; $ curl = curl_init($ url); curl_setopt($ curl,CURLOPT_FOLLOWLOCATION,true); curl_setopt($ curl,CURLOPT_RETURNTRANSFER,TRUE); $ subject = curl_exec($ curl); (獲得下載頁面的大小 print(「 – baladpi

+0

仍然有相同的錯誤 – baladpi

+0

不知道還有什麼要添加 - 你的代碼適合我。可能值得檢查一下,您的服務器是否具有HTTP和HTTPS流量的出站網絡訪問權限。您可能會通過調用'echo curl_error($ curl)' – iainn