2013-04-05 39 views
4

我在製作一個搜索小部件。當我搜索我從2 api的 獲取結果時,一個來自yelp,另一個來自另一個來源。但這個過程需要更長的時間如何在不等待第一個響應的情況下同時調用兩個api?

$dataProvider = SearchUtil::locallookup($for, $near); //local api 
$content=SearchUtil::yelplookup($for,$near); //yelp api 
$array=array_merge($dataProvider,$content); 

有沒有什麼辦法可以將這兩個API一起調用?我不想在第一個API給出結果後調用yelp api。我想把他們倆叫在一起。

有沒有辦法做到這一點?

回答

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()獲取每個通道的內容。

+0

鏈接到英文手冊頁:http://php.net/manual/en/function.curl-multi -exec.php – Nick 2017-02-05 09:01:05

相關問題