发送多个CuRL请求
我正在寻找一些关于我的CurL代码的帮助。我试图执行多个URL,但它只运行最后的结果。发送多个CuRL请求
这里是我的代码:
function executeCurl($data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, trim($data['url']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//execute post
$result = curl_exec($ch);
curl_close($ch);
unset($data,$url,$ch);
//close connection
}
林在循环运行executeCurl但只执行最后的结果。
好像$result
是问题所在。 我假设$结果是全局定义......这意味着,每次运行executeCurl()
时间
,该$result
被覆盖。 因此,当你的循环完成,你看看$result
,你所有的就是你的最后executeCurl()
的结果。
您应该返回$ result,并执行您需要对每个循环的结果执行的操作。
这是一个示例代码,可以帮助你:
// Add a return to your executeCurl function
function executeCurl($data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, trim($data['url']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//execute post
$result = curl_exec($ch);
curl_close($ch);
unset($data,$url,$ch);
//return the result
return $result;
}
// Your loop
$results = array();
for ($i=0;$i<count($dataList), $i++) { // $dataList is whatever your list of datas are
$results[$i] = executeCurl($dataList[$i]);
}
// Check out your results
print_r($results);
我想我知道问题是什么。我请求的网址上有Javascript。因为它在while循环中执行的页面也会执行两次(或更多)javascript。我是对的? – Kenny 2013-03-06 06:12:30
@Kenny JavaScript不是问题,因为Javascript不能在CURL上运行。但是,如果你确实相信,可以尝试使用诸如“http:// www.google.com”之类的URL来测试CURL循环。你有没有尝试过我建议的解决方案?它怎么样? (或有没有你不明白的部分?) – ashiina 2013-03-06 06:28:18
是的,它的工作,但在执行页面上有一个JavaScript的onload函数,将imgdata张贴到一个PHP文件与jquery ......并有我的问题,因为我可以看到在铬调试器,它只能做2个请求,而不是10 ...但这篇文章帮助了我,我不得不做另一个为我现在得到的JavaScript问题。 – Kenny 2013-03-06 06:40:05
你并不真的需要取消设置的语句。另外,不知何故,我不认为这个问题是在这个代码中。 – 2013-03-06 05:46:05
您正在使用阻止卷曲界面。 – 2013-03-06 05:46:44