我编写了一个在WHILE循环中调用的CURL处理程序。在执行每个CURL exec之后,我通过将CURL处理程序设置为NULL来释放对象资源。但即使在清理了请求之后,我在执行80K调用之后也遇到了一个奇怪的错误,如
致命错误:允许的内存大小为 耗尽134217728个字节(试过 分配13471个字节)
而且,我想知道,假设如果CURL请求抛出超时错误,错误是否会缓存在循环内?为什么我要问的是,我正在尝试使用CURL处理程序执行API调用。如果API调用第一次失败,即使多次执行它也会永远失败。
例如:我要调用facebook搜索API并返回错误,如
connect()超时!
第一次执行后,如果我尝试下次或多次运行,再次返回相同的错误。
所以,任何人都可以帮助我解决这个问题。
注意:
这是我的代码,
while(true) {
$curlObj = triggerCurl($serachUrl);
return $curlObj;
}
function triggerCurl($url) {
$url = $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// Set the default options
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
$ret = curl_exec($ch);
curl_close($ch);
unset($ch);
}