2017-09-11 3 views
-1

ウェブページのサイズを取得するコードがあります。このコードでウェブページのダウンロードサイズを取得する

問題は、サイトが持っているならば、それはページサイズを返していない、あるHTTPS

PHPでURLやWebページの合計サイズを取得する方法

$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をフェッチすると、実際にhttps://facebook.com/に301リダイレクトが返されます。あなたがそれに続くべきだと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); $件名= curl_exec($ curl); //ページのダウンロードサイズを取得 print( "ダウンロードサイズ:"。curl_getinfo($ curl、CURLINFO_SIZE_DOWNLOAD)。 '
'); – baladpi

+0

にはまだ同じエラーがあります – baladpi

+0

他に何を追加すればよいかわかりません - あなたのコードはうまく動作します。サーバーがHTTPトラフィックとHTTPSトラフィックの両方に対してアウトバウンドネットワークアクセスを持っているかどうかを確認することは価値があります。あなたは 'echo curl_error($ curl)'を呼び出すことでさらに詳しい情報を得るかもしれません。 – iainn

関連する問題