私はこの問題に苦しんでいます。PHP curl_multi_getcontent部分体を受け取りました
私がフェッチしているボディは、3100文字の大きなものではありません。サーバー上のApacheログには、コンテンツの長さは3100と表示されます。ただし、curl_multi_getcontentによって返された文字列は1290文字に切り詰められました。
通常、curl_multi_getcontent()は正常に動作しますが、時々この奇妙な動作が発生します。
アイデア?
私はこの問題に苦しんでいます。PHP curl_multi_getcontent部分体を受け取りました
私がフェッチしているボディは、3100文字の大きなものではありません。サーバー上のApacheログには、コンテンツの長さは3100と表示されます。ただし、curl_multi_getcontentによって返された文字列は1290文字に切り詰められました。
通常、curl_multi_getcontent()は正常に動作しますが、時々この奇妙な動作が発生します。
アイデア?
私のコードは、進行中の転送のためのチェックが欠落していました。進行中の転送に
:
http_code = 200 errno = 0 download_content_length = total length, e.g. 1M size_download = current position, <= download_content_length
はしばらく(curlm_multi_exec == CURLM_CALL_MULTI_PERFORM)がやや不十分であると思われます。 このurlまたはmulti_execの2番目の引数に一致するサイズがすべてのURLが終了したことを通知するまで、usleepをループする必要があります。再現する
ステップ:
を参照してください。Content-Lengthのないウェブサイトには一致するサイズはありません。監視転送時間は働くオプションです。 – anttir
これは私のお尻を蹴った。それはphp5(マルチ?)カールシステムのバグのようです。ローリングカールのマルチカーソルライブラリを使用しているときにこのバグが発生しましたが、根底にある問題はPHP自体にあるようです。 (CURLOPT_TIMEOUTが限界に達していた私の場合には)いくつかの状況下
PHP 5.3.3-1ubuntu9.3 with Suhosin-Patch (cli) (built: Jan 12 2011 16:07:38)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
curl_errorとcurl_errnoが適切にカールにエラーを報告しません。ここに私のphp -vです。 curl_multi_info_readによって返された配列から 'result'キーを使用しなければなりませんでした。 curl_err *関数がすべてを正常として報告したとき、その結果コードは私に実際のエラー番号を与えました。
私はこの問題は、このバグレポートに関連していると思う:http://bugs.php.net/bug.php?id=52558
ソースコードを投稿できますか? http://stackoverflow.com/faq – Brad