我有一段PHP代码使用cURL来发布请求,它使用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_ *的支持,这样我就可以做回退了?
答案 0 :(得分:5)
使用function_exists('curl_multi_select')
来检测支持。