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÷
Надеюсь на Вашу помощь, который час бьюсь над этой проблемой!
cURL
умеет самостоятельно и отправлять Accept-Encoding
и декодировать соответствующий ответ. В PHP экспортирована константа CURLOPT_ENCODING
для curl_setopt
. Для использования этого функционала вы должны вместо отправки заголовка Accept-Encoding
вручную включить функционал curl
:
curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate");
Впрочем, остаётся вероятность, что HTTP сервер с которым вы разговариваете не соблюдает стандарт, раз если вы не заявили Accept-Encoding
, а всё равно получили сжатый текст. В этом случае и алгоритм сжатия можно ожидать любой.
Попробуйте через 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);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как отправить письмо по smtp используя Zend Framework и ORM Doctrine,а так же в использовании локальный сервер OpenServer? Все библиотеки и классы подключеныДанный...
пытаюсь отправить письмо при помощи mail()в консоль падает ошибка sh: 1: /etc/sbin/sendmail: not found