Как я узнаю, что URL возвращает изображение PHP? - PullRequest
0 голосов
/ 28 февраля 2012

У меня следующая проблема.Я использую curl для загрузки изображений с сервера.Я автоматически сгенерировал имя для изображения и скачал его.Некоторые из сгенерированных имен изображений не возвращаются изображения.Как я узнаю, что URL возвращает изображение?

Извините за мой "сломанный" английский.

Заранее благодарен!

Ответы [ 3 ]

3 голосов
/ 28 февраля 2012
$content_type = curl_getinfo ( $curl_obj, CURLINFO_CONTENT_TYPE);

http://www.php.net/manual/en/function.curl-getinfo.php

1 голос
/ 28 февраля 2012

Ответ Витаутаса правильный, но неполный.

$url = 'http://test.com/test/test/something';

$c = curl_init($url);

// Here you would want to set more curl settings, such as
// enabling redirection and setting a valid user agent.

curl_exec($c);

$t = curl_getinfo($c, CURLINFO_CONTENT_TYPE);

После этого $t должен содержать mimetype (вместе с некоторыми другими вещами), кроме случаев, когда возникает ошибка, и в этот момент вы получаетеa NULL.

Тем не менее, есть 3 пункта, которые необходимо проверить, чтобы убедиться, что возвращаемые данные имеют определенный тип:

0 голосов
/ 28 февраля 2012

Я бы посоветовал вам продолжать потоковую передачу данных на сервер, как вы уже это делаете.Чтобы проверить, прежде чем пытаться конвертировать, вы можете использовать finfo-file .

Более сложным способом может быть установка заголовка Accept при, например, использовании cUrl, чтобы получить ответ, только если заголовок совпадает.Пример:

curl_setopt($cURL,CURLOPT_HTTPHEADER,array (
        "Accept: application/json"
    ));

Или используйте CURLINFO_CONTENT_TYPE, см. http://ch.php.net/manual/en/function.curl-setopt.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...