Расшифровка данных dzip и deflate

136
21 ноября 2019, 02:10

cURL парсит страницу, но она приходит в сжатом виде. Среди headers, которые я отправляю, есть строчка 'Accept-Encoding: dzip, deflate', но, даже если ее убрать - результат не изменится. Пробовал декодировать полученную страницу с помощью декодера Лебедева - тщетно. Вот часть получаемого текста:

¬AY÷1¬ODA÷417¬XA÷d1¬XB÷d15¬XC÷d27¬ODA÷417¬ODC÷1¬ODB÷1¬ODD÷d¬ODC÷1¬ODB÷15¬ODD÷d¬ODC÷1¬ODB÷27¬ODD÷d¬~ZA÷

Надеюсь на Вашу помощь, который час бьюсь над этой проблемой!

Answer 1

cURL умеет самостоятельно и отправлять Accept-Encoding и декодировать соответствующий ответ. В PHP экспортирована константа CURLOPT_ENCODING для curl_setopt. Для использования этого функционала вы должны вместо отправки заголовка Accept-Encoding вручную включить функционал curl:

curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate");

Впрочем, остаётся вероятность, что HTTP сервер с которым вы разговариваете не соблюдает стандарт, раз если вы не заявили Accept-Encoding, а всё равно получили сжатый текст. В этом случае и алгоритм сжатия можно ожидать любой.

Answer 2

Попробуйте через gzinflate:

$url = "тут урл"
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($cr, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2');
curl_setopt($ch, CURLOPT_ENCODING , "gzip");     
curl_setopt($ch, CURLOPT_TIMEOUT, 5); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$return = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 
$return = gzinflate(substr($return, 10));
print_r($return);
READ ALSO
Вывод инфоблока в компоненте Bitrix

Вывод инфоблока в компоненте Bitrix

Пытаюсь вывести инфоблоки в компоненте битрикс

114
Как отправить письмо по smtp используя Zend Framework2?

Как отправить письмо по smtp используя Zend Framework2?

Как отправить письмо по smtp используя Zend Framework и ORM Doctrine,а так же в использовании локальный сервер OpenServer? Все библиотеки и классы подключеныДанный...

115
Генерация случайной строки JS

Генерация случайной строки JS

Помогите переписать функцию с php на js/jquery

125
sh: 1: /etc/sbin/sendmail: not found php не отправляет почту

sh: 1: /etc/sbin/sendmail: not found php не отправляет почту

пытаюсь отправить письмо при помощи mail()в консоль падает ошибка sh: 1: /etc/sbin/sendmail: not found

138