我正在制作搜索小部件。当我在搜索时,我正在从2 api中获取结果 一个来自yelp,另一个来自另一个来源。但这个过程需要更长的时间
$dataProvider = SearchUtil::locallookup($for, $near); //local api
$content=SearchUtil::yelplookup($for,$near); //yelp api
$array=array_merge($dataProvider,$content);
有什么办法可以把这个api叫到一起吗?我不希望在第一个api给出结果后调用yelp api。我想一起打电话给他们。
有没有办法做到这一点?
答案 0 :(得分:1)
这是可能的,但您必须重写locallookup和yelplookup并将它们绑定到一个cURL multi_exec上下文中。默认情况下,cURL同步运行。在您的情况下,您希望它在多组数据上异步,最好的方法是将两个通道都运行到multi_exec上下文中。
此页面上的更多信息:http://php.net/manual/fr/function.curl-multi-exec.php。
一旦你curl_multi_exec(),你将能够使用第二个参数(将被引用 - 更改为true或false)跟踪调用集的状态,并从那里,你也将能够使用curl_multi_getcontent()获取每个频道的内容。
答案 1 :(得分:1)