4

検索ウィジェットを作っています。私が検索しているとき、2 つの API から結果を取得しています。1 つは yelp からのもので、もう 1 つは別のソースからのものです。しかし、このプロセスには時間がかかります

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

この両方の API を一緒に呼び出す方法はありますか? 最初の API が結果を出した後に yelp API が呼び出されるのは望ましくありません。両方とも呼びたい。

これを行う方法はありますか?

4

2 に答える 2

1

可能ですが、locallookup と yelplookup の両方を書き直して、両方を cURL multi_exec コンテキストに結び付ける必要があります。デフォルトでは、cURL は同期的に実行されます。あなたの場合、複数のデータセットで非同期にしたいのですが、それを行う最善の方法は、両方のチャネルを multi_exec コンテキストで実行することです。

このページの詳細: http://php.net/manual/fr/function.curl-multi-exec.php

curl_multi_exec() を実行すると、2 番目のパラメーター (true または false に参照変更される) を使用して一連の呼び出しのステータスを追跡できるようになり、そこからコンテンツを取得することもできます。 curl_multi_getcontent() を使用して各チャネルを取得します。

于 2013-04-05T11:46:29.967 に答える
1

私はいくつかの結果を得ています。

http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/

https://github.com/petewarden/ParallelCurl

これは他の人に役立つかもしれません..

于 2013-04-05T12:10:04.727 に答える