@antonowano
Профессиональный самоучка

Почему не загружается картинка по URL с помощью Curl?

Написал функцию возврата содержимого файла по URL:
protected function _getContents($url)
    {
        $types = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png');
        $file = curl_init($url);
        curl_setopt($file, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($file, CURLOPT_HEADER, 0);
        $data = curl_exec($file);
        $code = curl_getinfo($file, CURLINFO_HTTP_CODE);
        $type = curl_getinfo($file, CURLINFO_CONTENT_TYPE);
        curl_close($file);

        return $code == 200 && in_array($type, $types) ? $data : false;
    }


Картинки с сайта mlsoptima.ru получаются, а с nmls.ru нет.
Открываю не загружающуюся картинку через браузер: код и тип ответа соответствующие.
В чем может быть причина?
  • Вопрос задан
  • 762 просмотра
Решения вопроса 1
Stalker_RED
@Stalker_RED
Возможно, один из сайтов более придирчив к заголовкам запроса. Попробуйте добавить user-agent
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mr-molodoy
Причин может быть несколько.
1. Проверка Referrer, на загрузку только со страниц сайта.
2. Подстраховка, проверка на "настоящий" User Agent браузера.
3. Устанавливается cookie со специальным ключом привязанным к сессии пользователя, устанавливаемый на страницах сайта и проверяемый при получении статического контента. (Маловероятный вариант).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы