getimagesize() не удалось открыть поток: HTTP-запрос не выполнен! HTTP/1.1 502 Плохой шлюз

Я пытаюсь получить информацию об изображении (с URL-адреса: https://ec.europa.eu/maritimeaffairs/maritimeday/sites/mare-emd/files/exhibitions-2016.png) функцией getimagesize().

Когда я запускаю свою функцию, я получаю сообщение об ошибке в качестве заголовка этого вопроса.

Но я все еще могу открыть это изображение из браузера.

Может ли кто-нибудь сказать мне, почему? Есть ли разница между открытием изображения с помощью PHP и браузером?

Спасибо.


person TJTran    schedule 24.11.2016    source источник


Ответы (1)


Да, есть разница между PHP и браузером. PHP большую часть времени работает на сервере и может получать данные из Интернета. Браузер работает на вашем компьютере (как клиент), а также может получать данные из Интернета. Браузер уже реализовал много вещей, о которых вам не нужно беспокоиться, когда дело доходит до сетевого взаимодействия.

PHP — это язык, который предлагает вам некоторые библиотеки для общения в Интернете и получения данных, но вы должны реализовать это самостоятельно и детально продумать, что с ними происходит.

Вероятно, вы звоните getimagesize('https://ec.europa.eu/maritimeaffairs/maritimeday/sites/mare-emd/files/exhibitions-2016.png');

Ваш браузер обрабатывает шифрование за вас, но в PHP иногда поддержка шифрования не включена. Попробуйте URL-адрес, начинающийся с http: вместо https:, если это сработает, проблема в этом.

person Martin Cup    schedule 24.11.2016