Я пытаюсь получить размер файла удаленного файла «compiler-latest.zip» (googlecode.com) с помощью Curl фактически не загружая его, вот мой PHP код:Как получить размер файла удаленного файла из googlecode с помощью cURL?
$url = 'http://closure-compiler.googlecode.com/files/compiler-latest.zip';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // optional
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); // optional
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // optional
$result = curl_exec($ch);
$filesize = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
print 'Filesize: ' . $filesize . '<br><br>';
print_r($result);
Но, я получаю " HTTP/1.1 404 Not Found "с размером файла (1379 байт) этой ошибки 404. Итак, если я установил (CURLOPT_NOBODY, 0), он загружает файл и возвращает его правильный размер файла (в настоящее время 3820320 байт). Мой вопрос в том, как получить правильный размер файла «compiler-latest.zip» без его загрузки?
ВАЖНО: этот код работает так, как ожидается, с любым другим URL-адресом за пределами googlecode.com.
У вас есть метод HEAD, чтобы узнать, возвращается ли что-нибудь полезное в headerS? – jldupont
Да, я беру HEADER, он обычно содержит все необходимые данные, но не в этом конкретном случае. – Ken