Php 在foreach循环优化中使用curl?
如果我在foreach循环中使用curl,这是一种不好的做法还是会更慢 我计划有一个自动完成输入字段,输入中的查询将发送到API调用 我正在从某个链接(即:)获取id 所以每次我输入一个名字,它都会进入foreach搜索Php 在foreach循环优化中使用curl?,php,optimization,curl,Php,Optimization,Curl,如果我在foreach循环中使用curl,这是一种不好的做法还是会更慢 我计划有一个自动完成输入字段,输入中的查询将发送到API调用 我正在从某个链接(即:)获取id 所以每次我输入一个名字,它都会进入foreach搜索http://api.linke1.com/names,然后它将从另一个链接中查找照片url。我想输出一个数组的列表,所以最终我将有一个数据列表来输出,显示诸如名称、照片等信息 因为输入字段中输入的每个字母都会通过这个foreach循环,所以速度会显著降低。有没有更简单的方法 谢
http://api.linke1.com/names
,然后它将从另一个链接中查找照片url。我想输出一个数组的列表,所以最终我将有一个数据列表来输出,显示诸如名称、照片等信息
因为输入字段中输入的每个字母都会通过这个foreach循环,所以速度会显著降低。有没有更简单的方法
谢谢 在循环之前初始化旋度和不变的东西,然后关闭它 这将使事情加快一点 您可以使用curl_multi_*,它可以并行获取多个URL
或者,他可以使用
文件\u get\u contents()
,因为这是一个简单的get请求。@xbonez一个curl请求更快。嗯,真的吗?我不知道。@xbonez是的,他们在这里讨论了一个问题:没有办法在一个请求中检索所有这些信息吗?一般来说,在循环中执行昂贵的操作(通过internet请求数据肯定是昂贵的操作)是个坏主意。您问题中的循环看起来是多余的。您最好通过不使用外部foreach来优化它。内部foreach看起来也很可疑,您可能希望在第一次迭代中打破它。除此之外,请只询问具体问题,而不是假设问题。是的,它可能是错误的,但现在看来,它甚至不起作用。首先让它工作,然后优化它。你想到了什么?
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
}
}