cURLを使用してポストリクエストを実行するPHPコードがあります。これは、パフォーマンスのためにcurl_multi_*関数を使用します。
ホストされているPHPサーバーではすべて正常に動作します。
しかし、127.0.0.1のWAMPServerでは失敗します。単一のcURL要求は、WAMPServerで問題なく機能しcurl_multi_select()
ますが、スクリプトが最終的にタイムアウトするまで、-1を返すだけです。
コード...は、curl_multi_execのPHP.netのマニュアルページの例1です。http://www.php.net/manual/en/function.curl-multi-exec.phpこれ が無限ループの原因となるスニペットです。
$active = null;
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
Vistaのファイアウォールを無効にしてテストしました。
誰かがcurl_multi_*をWAMPServerで動作させる方法を知っていますか、またはPHPスクリプト内からcurl_multi_ *のサポートを検出して、フォールバックを作成できる方法はありますか?