0

如果我在 foreach 循环中使用 curl 是不好的做法还是会变慢?

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

我从某个链接(即:http ://api.linke1.com/names )获得一个 id

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 从 中搜索 id http://api.linke1.com/names,然后它会从另一个链接中查找照片 url。我想输出一个数组列表,所以最终我会有一个数据列表来输出显示信息,如姓名、照片等......

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

谢谢!

4

1 回答 1

1

初始化 curl 和循环之前不会改变的东西,然后关闭它。

这将加快事情一点点。

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

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

于 2013-01-20T08:06:02.807 回答