РЕДАКТИРОВАТЬ: причиной была служба перебазирования (безопасности), которая заблокировала нас. Пожалуйста, игнорируйте вопрос
Я проверил другие подобные вопросы, этот случай кажется другим.
У меня есть этот простой код:
$src='http://www.fattal.co.il/Octopus/Upload/Images/Pages/thumbs/magic-sunrise-club-eilat-youth-club_thumb.jpg';
$opts = array(
'http'=>array(
'method'=>"GET",
'user_agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'
)
);
$context = stream_context_create($opts);
$data= file_get_contents( $src, false, $context, -1, 1500000);
echo strlen ($data);
На моем компьютере разработчика он печатает 8861 — реальный размер изображения. На производственном сервере Linux Ubuntu он приносит некоторый HTML-код, который загружает с сайта javascript (напечатанный размер составляет 549 байт).
обе коробки хорошо извлекают изображения с других сайтов. Так что обертки, кажется, на месте. Эта проблема характерна для сайта в примере.
Я попытался эмулировать сервер со многими вариантами заголовков. Включены все возможные заголовки, которые отправляет браузер. Это не имеет значения.
Я пытался с другого рабочего сервера исключить, что сервер изображений заблокировал его по IP.
Два поля имеют allow_url_fopen On.
Что еще я могу проверить, чтобы понять, почему он не работает на производственном сервере?
Просто идея, я загрузил файл с FireFox и использовал расширение Modify Headers для фильтрации параметра Host. Он вернул ошибку с размером, похожим на ваш. Попробуйте добавить заголовок Host, установленный на www.fattal.co.il. Посмотрите, работает ли это
По всей видимости, причина в том, что сайт использует платформу безопасности. Нам просто нужно внести белый список.
Спасибо !