Есть задача - копировать изображения с инстаграма на сервер.
Также есть баг, который пока что был замечен только с одним изображением и только на хостинге заказчика. На локалке и на dev-сервере все работает правильно.
За копирование изображения отвечает код:
$arrContextOptions = array(
"ssl" => array(
"verify_peer" => false,
"verify_peer_name" => false,
),
);
$img = 'https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/e15/11378546_468565866637366_80199982_n.jpg';
$upload_dir = $_SERVER["DOCUMENT_ROOT"] . '/';
$imageString = file_get_contents($img, false, stream_context_create($arrContextOptions));
$save = file_put_contents($upload_dir . basename($img), $imageString);
В результате скопированое изображение не открываеться - Invalid jpeg file structure: two SOI markers. Если вручную скачать изображение и побайтово сравнить его с копией, созданной скриптом то:
cmp --print-char 11378546_468565866637366_80199982_n.jpg 0611378546_468565866637366_80199982_n.jpg
differ: byte 65537, line 224 is 372 M-z 377 M-^?
То есть отличается один 65537-ой байт.
Почему такое может получаться? В какую сторону копать? Может есть какие-то настройки в php.ini которые косвенно могут влиять на file_get\put_contents?