У меня есть код, чтобы получить размер веб-страницы.
Проблема с этим кодом в том, что он не возвращает размер страницы, если на сайте есть 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>');
То, используете ли вы HTTPS или нет, не должно влиять на последующие вызовы curl_getinfo
,
Я подозреваю, что проблема здесь в том, что вы не указали, что Curl должен следовать перенаправлениям — получение facebook.com
на самом деле возвращает перенаправление 301 в https://facebook.com/
, Если вы не скажете Керлу, что он должен следовать за ним, он сдастся после первого запроса. В этом случае, поскольку ответ является просто заголовком перенаправления, тело пусто, следовательно, ваш 0-байтовый размер.
Если вы укажете
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
тогда он будет следовать за редиректом, и вы получите правильный размер файла (182227, по крайней мере для меня).
Других решений пока нет …