如果我在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,然后它会从另一个链接中查找照片url。我想输出一个数组列表,所以最终我将有一个数据列表输出,显示诸如姓名、照片等信息……
这是否会显著降低速度,因为在输入字段中键入的每个字母都会经过foreach循环。会有更简单的方法吗?
谢谢!
发布于 2013-01-20 08:06:03
初始化curl和循环之前未更改的内容,然后在循环之后关闭它。
这会让事情变得更快一点。
您还可以使用curl_multi_*,它可以并行获取多个URL。
https://stackoverflow.com/questions/14422701
复制相似问题