2

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

4

1 回答 1

1

似乎$result是问题所在。我假设 $result 是全局定义的......这意味着,

每次运行时executeCurl()$result都会被覆盖。因此,当您的循环完成并查看时$result,您所拥有的只是 LAST 的结果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);
于 2013-03-06T05:53:29.787 回答