Задать вопрос
@XenK

Ошибка при получении изображения?

Пытаюсь получить изображение по ссылке, но получаю ошибку:
'imagecreatefromstring(): Data is not in a recognized format'


Код:
private static function saveImageUrl($url)
    {
        header('Content-Type: image/png');
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16');
        return curl_exec($ch);
    }

    public function uploadImg($fromUrl) 
    {
        return imagecreatefromstring(static::saveImageUrl($fromUrl));
    }
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
ivankomolin
@ivankomolin
Во первых посмотрите что возвращает static::saveImageUrl($fromUrl).
Скорее всего он возвращает не содержимое картинки, поэтому и ошибка.
И header('Content-Type: image/png') не нужен в данном случае.

А вообще судя по тегу "парсинг" вы так картинки грабите с других сайтов. Это очень плохо. Медленно и прожорливо по ресурсам.

Картинки это же файлы, зачем вы содержимое этих файлов грузите в память через php.
Грузите их через консоль тем же curl или wget сразу на диск.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽