我在寻找CurL代码的帮助。我试图执行多个URL但它只运行最后的结果。
这是我的代码:
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但它只执行最后一个结果。
答案 0 :(得分:1)
似乎$result
是问题所在。
我假设$ 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);