Ошибка PHP cURL 7.36: ошибка при обработке кодирования содержимого: установлена ​​неверная длина кода

Я столкнулся с действительно странным поведением (ошибка?) При использовании curl для загрузки сжатого gzip XML-файла из PHP. Сообщение об ошибке гласит:

Ошибка при обработке кодирования контента: задана неверная длина кода

Странная вещь, это происходит только на моей локальной машине при использовании curl из PHP. Запуск точно такого же сценария на моем сервере будет успешным, так же как и запуск curl.exe автономно на моем локальном компьютере (подробнее об используемых системах см. Ниже).

Это наводит меня на мысль, что это может быть ошибка в php_curl.dll (curl версия 7.36.0).

Может кто-то с подобной настройкой может подтвердить эту проблему?


системы

Локальная настройка PHP (ошибка):

  • Версия PHP: 5.5.11
  • curl версия: 7.36.0
    • Хост: i386-pc-win32
    • Версия SSL: OpenSSL / 1.0.1g
    • Версия ZLib: 1.2.7
    • libSSH версия: libssh2 / 1.4.3

Удаленная настройка PHP (работает)

  • Версия PHP: 5.5.16-nmm1
  • curl версия: 7.22.0
    • Хост: x86_64-pc-linux-gnu
    • Версия SSL: OpenSSL / 1.0.1
    • Версия ZLib: 1.2.3.4
    • Версия libSSH: [не установлено]

Локальный автономный локон (работы):

  • curl версия: 7.37.0 (от paehl.com)
  • curl Версия: 7.36.0 (Из npackd.org)
  • curl Версия: 7.30.0 (Пришло как часть msysGit)

Код для воспроизведения

Из PHP

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.tchibo.de/sitemap-pv-pa.xml");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");

if(curl_exec($curl) === false) {
echo 'Error: ' . curl_error($curl);
}
else {
echo 'Success!';
}
curl_close ($curl);

будет выводить что-то вроде этого (при ошибке):

* Hostname was NOT found in DNS cache
*   Trying 212.116.1.40...
* Connected to www.tchibo.de (212.116.1.40) port 80 (#0)
> GET /sitemap-pv-pa.xml HTTP/1.1
Host: www.tchibo.de
Accept: */*
Accept-Encoding: gzip

< HTTP/1.1 200 OK
* Server Apache-Coyote/1.1 is not blacklisted
< Server: Apache-Coyote/1.1
< Content-Disposition: attachment; filename="sitemap-pv-pa.xml"< Content-Type: text/xml;charset=UTF-8
< Transfer-Encoding: chunked
< Content-Encoding: gzip
< Vary: Accept-Encoding
< Date: Thu, 02 Oct 2014 09:10:58 GMT
<
* Error while processing content unencoding: invalid code lengths set
* Failed writing data
* Closing connection 0

Error: Error while processing content unencoding: invalid code lengths set

Из командной строки

[путь к curl.exe] —compress -v «http://www.tchibo.de/sitemap-pv-pa.xml«> tmp.txt

Выход (успешно)

C:\curl-versions\7.36\bin>curl.exe --compress -v "http://www.tchibo.de/sitemap-pv-pa.xml" > tmp.txt
* Hostname was NOT found in DNS cache
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 212.116.1.40...
* Connected to www.tchibo.de (212.116.1.40) port 80 (#0)
> GET /sitemap-pv-pa.xml HTTP/1.1
> User-Agent: curl/7.36.0
> Host: www.tchibo.de
> Accept: */*
> Accept-Encoding: deflate, gzip
>
< HTTP/1.1 200 OK
* Server Apache-Coyote/1.1 is not blacklisted
< Server: Apache-Coyote/1.1
< Content-Disposition: attachment; filename="sitemap-pv-pa.xml"< Content-Type: text/xml;charset=UTF-8
< Transfer-Encoding: chunked
< Content-Encoding: gzip
< Vary: Accept-Encoding
< Date: Thu, 02 Oct 2014 09:34:18 GMT
<
{ [data not shown]
100  814k    0  814k    0     0   791k      0 --:--:--  0:00:01 --:--:--  803k
* Connection #0 to host www.tchibo.de left intact

2

Решение

Задача ещё не решена.

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector