PHP8.1 リリース: 複数のリクエストの同時処理のためのcurlの導入
最近、PHPは最新バージョンのPHP8.1を正式にリリースしました。これには、複数のリクエストの同時処理のためのcurlという重要な機能が導入されました。この新機能により、開発者は複数の HTTP リクエストをより効率的かつ柔軟に処理できるようになり、パフォーマンスとユーザー エクスペリエンスが大幅に向上します。
以前のバージョンでは、複数のリクエストを処理するには、多くの場合、複数のcurlリソースを作成し、ループを使用してデータをそれぞれ送受信する必要がありました。この方法でも目標は達成できますが、システム リソースを最大限に活用することができず、開発者のコーディングも複雑になります。
PHP8.1 では、新しいcurl_multi_* 関数シリーズが導入され、開発者はこの関数シリーズを使用して、複数のリクエストを非同期に送信し、同時に応答を受信することができます。このようにして、応答を待つ間に 1 つのリクエストを送信することができ、リクエストの同時処理が実現されます。
以下、curl_multi_* 関数の使用例を見てみましょう:
$urls = [ 'https://www.example.com/api/1', 'https://www.example.com/api/2', 'https://www.example.com/api/3', 'https://www.example.com/api/4', ]; $resources = []; $mh = curl_multi_init(); foreach ($urls as $url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $ch); $resources[] = $ch; } $active = null; do { $status = curl_multi_exec($mh, $active); if ($status !== CURLM_CALL_MULTI_PERFORM) { curl_multi_select($mh); } } while ($active > 0); foreach ($resources as $resource) { $data = curl_multi_getcontent($resource); // 处理响应数据 echo $data; curl_multi_remove_handle($mh, $resource); curl_close($resource); } curl_multi_close($mh);
上の例では、複数の URL を含む配列を作成し、curl_multi リソースと、curl を格納する配列を初期化しました。リソース。次に、foreach ループを使用して URL ごとに新しいcurl リソースを作成し、curl_multi_add_handle 関数を介してそれをcurl_multi リソースに追加します。次に、curl_multi_exec 関数を使用してリクエストを非同期に送信し、curl_multi_select 関数を使用して応答を待ちます。最後に、curl リソース配列を走査し、curl_multi_getcontent 関数を使用して応答データを取得し、処理します。
PHP8.1 では、複数のリクエストを同時に処理するためにcurlを導入することで、複数のリクエストを処理するためのコードが大幅に簡素化され、パフォーマンスが大幅に向上しました。複数の HTTP リクエストを同時に送信する必要があるアプリケーション シナリオ、特に外部 API と通信する場合、この新機能の追加は間違いなく重要なマイルストーンです。
概要:
PHP8.1 のリリースでは、curl の複数リクエストの同時処理という重要な機能が導入され、開発者に複数の HTTP リクエストを処理する効率的かつ柔軟な方法が提供されます。 curl_multi_* 関数シリーズを使用すると、複数のリクエストを非同期に送受信できるため、システムのパフォーマンスとユーザー エクスペリエンスが大幅に向上します。開発者は、同時リクエストをより簡単に処理し、関連コードの作成を簡素化できるようになりました。この新機能は、外部 API と通信するアプリケーションにとって間違いなく重要な進歩です。皆さんも、アプリケーションのパフォーマンスと効果を向上させるために、PHP8.1 のこの新機能をぜひ試してみてください。
以上がPHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。