curl — php file_get_contents ведет себя по-разному на dev и production

РЕДАКТИРОВАТЬ: причиной была служба перебазирования (безопасности), которая заблокировала нас. Пожалуйста, игнорируйте вопрос

Я проверил другие подобные вопросы, этот случай кажется другим.

У меня есть этот простой код:

$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.

Что еще я могу проверить, чтобы понять, почему он не работает на производственном сервере?

1

Решение

Просто идея, я загрузил файл с FireFox и использовал расширение Modify Headers для фильтрации параметра Host. Он вернул ошибку с размером, похожим на ваш. Попробуйте добавить заголовок Host, установленный на www.fattal.co.il. Посмотрите, работает ли это

1

Другие решения

По всей видимости, причина в том, что сайт использует платформу безопасности. Нам просто нужно внести белый список.

Спасибо !

0

По вопросам рекламы [email protected]