在foreach循环优化中使用curl?

时间:2013-01-20 08:00:38

标签: php optimization curl

这是不好的练习还是如果我在foreach循环中使用curl会更慢?

我打算有一个自动完成输入字段,输入中的查询将被发送到API调用。

我从某个链接获取了一个ID(即:http://api.linke1.com/names

foreach($json as j){

    $id = $j->id; //from http://api.linke1.com/names

    $url = "https://api.site/{$id}/photos";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $output = curl_exec($ch);
    curl_close($ch);    

    $jsonDecode = json_decode($output);
    $results = $jsonDecode->results;
    foreach($results as $result)
    {   
            $photoURL= $result->photo->url; //from https://api.site/{$id}/photos
    }
}

所以每当我输入一个名字时,它会进入foreach,从http://api.linke1.com/names搜索一个id,然后它会从另一个链接中查找照片网址。我想输出一个数组列表,所以最终我会有一个输出数据列表,显示名称,照片等信息......

这会显着减慢因为输入字段中输入的每个字母都将通过此foreach循环运行。会有更简单的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

初始化卷曲和循环前没有变化的东西,然后关闭它。

这会加速一点点。

您可以使用curl_multi_ *,它可以并行获取多个网址。

http://se2.php.net/manual/en/ref.curl.php