@NoKioO

Проблема в получении контента картинки — PHP Warning: getimagesize?

Привет,
Есть чистая виртуалка с Ubuntu 16 и изображение типа : https://img1.goodfon.ru/wallpaper/big/1/ca/foto-ma...

Загрузчик картинки все время возвращает ворнинг:
PHP Warning: getimagesize(https://img1.goodfon.ru/wallpaper/big/1/ca/foto-ma... failed to open stream: HTTP request failed! in Command line code on line 1
bool(false)

Можно воспроизвести так:
php -r 'echo var_dump(getimagesize("https://img1.goodfon.ru/wallpaper/big/1/ca/foto-makro-kartinka-zelenye.jpg"));'


При этом curl возвращает картинку без проблем:
curl -v https://img1.goodfon.ru/wallpaper/big/1/ca/foto-makro-kartinka-zelenye.jpg


Помогите разобраться плз.
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
@BorisKorobkov Куратор тега PHP
Web developer
<?php
$ch = curl_init("https://img1.goodfon.ru/wallpaper/big/1/ca/foto-makro-kartinka-zelenye.jpg");
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_exec($ch);
curl_close($ch);

Получаем:
...
> GET /wallpaper/big/1/ca/foto-makro-kartinka-zelenye.jpg HTTP/1.1
Host: img1.goodfon.ru
Accept: */*

* Empty reply from server
* Connection #0 to host img1.goodfon.ru left intact


Добавляем в наш код одну строчку
curl_setopt($ch, CURLOPT_HTTPHEADER, ['User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:28.0) Gecko/20100101 Firefox/28.0']);

И все сразу работает.

Вывод: сервер (Nginx) дает пустой ответ, если не указан user-agent.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы