我有一段使用 cURL 进行发布请求的 PHP 代码,它使用 curl_multi_* 函数来提高性能。
在我托管的 PHP 服务器上一切正常。
但它在 127.0.0.1 的 WAMPServer 上失败了。单个 cURL 请求在 WAMPServer 上工作得很好,但curl_multi_select()
在脚本最终超时之前只会返回 -1。
代码...是 PHP.net 的 curl_multi_exec 手册页上的示例 #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_* 的支持,以便我可以回退?