PHPカールエラー「チャンクエンコードされたデータの問題(2)」の解決策
<code style="font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace; padding:0px; margin:0px; word-break:normal; border:0px; display:inline; line-height:inherit; word-wrap:normal; background:transparent">作者:zhanhailiang 日期:2015-01-23</code>
ローカル環境:
<code style="font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace; padding:0px; margin:0px; word-break:normal; border:0px; display:inline; line-height:inherit; word-wrap:normal; background:transparent">系统版本:Microsoft Windows 6.1.7601PHP版本:PHP 5.3.29php_curl.dll扩展版本:7.35.0</code>
Windows環境で非常に奇妙な問題が発生しました。 PHP Curl はリクエストの送信時にエラーを報告します:
<code style="font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace; padding:0px; margin:0px; word-break:normal; border:0px; display:inline; line-height:inherit; word-wrap:normal; background:transparent">错误码:56错误信息:Problem (2) in the Chunked-Encoded data</code>
ただし、ブラウザを使用した直接アクセスは正常です。php_curl.dll 拡張機能自体のバグである可能性があります。解決策は次のとおりです。
PHP のカールヘッダーに HTTP バージョン情報を追加すると、
<code style="font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace; padding:0px; margin:0px; word-break:normal; border:0px; display:inline; line-height:inherit; word-wrap:normal; background:transparent">curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);</code>
で問題を解決できます。