Как выяснить тип изображения перед его загрузкой?

Я знаю, что могу сохранить изображение, используя следующий метод:

$input = 'http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com';
$output = 'google.com.jpg'; // << How to save the image with proper extension?
file_put_contents($output, file_get_contents($input));

Но что, если я не знаю формат загруженного изображения? Что если это «png»? Как определить тип целевого изображения перед его сохранением?

0

Решение

Лучше всего просто скачать его и переименовать файл позже. Таким образом, вам нужно всего лишь сделать один запрос.

Однако вы можете сделать еще один запрос HTTP HEAD. Это получает все заголовки ответа, включая Content-Type заголовок, так что вы можете решить, хотите ли вы эти данные или нет, прежде чем загружать файл. Однако не все серверы поддерживают запросы HEAD.

В любом случае, cURL — это самый простой способ сделать это:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/something');
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$headers = curl_exec($ch);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]