发送多个CuRL请求

时间:2013-03-06 05:42:32

标签: php curl

我在寻找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但它只执行最后一个结果。

1 个答案:

答案 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);
相关问题