2013-08-06 4 views
1

Я пытаюсь получить размер изображения, используяПолучить удаленный размер файла, используя URL в PHP

get_headers($url) 

Но я получаю предупреждение как

get_headers() [function.get-headers]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in 

Есть ли другой способ сделать это?

Спасибо.

+0

http://dzone.com/snippets/get-remote-filesize-http-head – Bora

+0

Вы можете оформить заявку на 'HEAD' и искать' заголовка Content-Length'. – alex

ответ

7

Вы можете использовать функцию curl_getinfo(), чтобы получить удаленный размер файла.

$ch = curl_init('http://www.google.co.in/images/srpr/logo4w.png'); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_HEADER, TRUE); 
curl_setopt($ch, CURLOPT_NOBODY, TRUE); 

$data = curl_exec($ch); 
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD); 

curl_close($ch); 
echo $size; 
0

Вы должны выполнить запрос HEAD. Это сообщит серверу, что вас интересуют только заголовки HTTP.

stream_context_set_default(
    array(
     'http' => array(
      'method' => 'HEAD' 
     ) 
    ) 
); 
$headers = get_headers('http://example.com'); 

Это вернет массив заголовков. Вы должны найти элемент длины содержимого, размер файла которого (количество байтов).

Смежные вопросы