Я пытаюсь получить размер изображения, используя
get_headers($url)
Но я предупреждаю,
get_headers() [function.get-headers]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in
Есть ли другой способ сделать это?
Благодарю.
Вы можете использовать curl_getinfo()
чтобы получить размер удаленного файла.
$ch = curl_init('http://img.ruphp.com/php/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;
Вы должны выполнить запрос HEAD. Это сообщит серверу, что вас интересуют только заголовки HTTP.
stream_context_set_default( array( 'http' => array( 'method' => 'HEAD' ) ) ); $headers = get_headers('http://example.com');
Это вернет массив заголовков. Вы должны найти элемент длины содержимого, размер файла которого (количество байтов).