2014-11-24 2 views
0

Это было задано раньше, но большинство, если не все ответы, были либо решениями, которые не работали во всех ситуациях, либо были ненужными (например, с использованием getimagesize(), который загружает все изображение).Проверьте, является ли URL-адрес изображением?

Как бы проверить, является ли данный URL приводит к изображению без необходимости прописывать расширение изображения (как .png», .jpg и т.д.)?

+0

Проверьте тип содержимого ответа сервера. Но для более подробной информации файл должен быть загружен и проанализирован. – Cheery

+0

Вы не можете сделать это надежно, не загружая все изображение, потому что вы должны действительно прочитать тип файла (и, следовательно, нужен файл), чтобы сделать это надежно во всех ситуациях. (Если, как указывает @Cheery, вы готовы доверять серверу, чтобы рассказать вам.) – JRL

ответ

1

Вы можете прочитать только заголовок файла CURL, а затем определить, является ли заголовок заголовком изображения или нет.

curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $file_url); 
curl_setopt($curl, CURLOPT_NOBODY, true); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
$header = curl_exec($curl); 
curl_close($curl); 
if (strstr($header, 'image/png')) { 
//file is image 
} 
Смежные вопросы