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 に答える