【PHP8.x】curl_multi_info_read関数の使い方

作成日: 更新日:

curl_multi_info_read関数は、複数のcURLリクエストを同時に管理するためのマルチハンドルから、完了した転送に関する情報を読み取る関数です。PHPで複数のウェブサイトへのデータ取得やAPI呼び出しなど、複数のHTTPリクエストを並行して処理したい場合に、curl_multi_init()で初期化したマルチハンドルを利用します。この関数は、curl_multi_exec()によって実行された複数のリクエストのうち、どれか一つが完了した際に、その完了した転送の詳細情報を取得するために使われます。

具体的には、この関数を呼び出すと、完了した個々のcURLハンドルの情報が配列として返されます。この配列には、完了したcURLハンドルそのものや、転送結果を示すステータスコード、エラーコードなどが含まれています。システムエンジニアを目指す方は、この情報を受け取ることで、どのリクエストが完了したのかを特定し、その転送が成功したのか、それとも何らかのエラーが発生したのかを判断できます。

また、一度の呼び出しで得られる情報は一つの完了した転送に関するものだけです。そのため、複数のリクエストが同時に完了している可能性がある場合は、情報がなくなるまでcurl_multi_info_read関数を繰り返し呼び出す必要があります。これにより、並行処理されたすべてのリクエストの結果を効率的に収集し、適切な後処理やエラーハンドリングを行うことが可能になります。

基本的な使い方

構文(syntax)

<?php

function curl_multi_info_read(CurlMultiHandle $multi_handle, ?int &$msgs_in_queue = null): array|false {}

引数(parameters)

CurlMultiHandle $multi_handle, int &$queued_messages = null

  • CurlMultiHandle $multi_handle: 複数のcURL転送を管理するCurlMultiHandleオブジェクト
  • int &$queued_messages = null: キューに入れられたメッセージの数を受け取る整数への参照

戻り値(return)

array|false

実行が完了した転送に関する情報を含む配列、またはエラーが発生した場合は false を返します。

【PHP8.x】curl_multi_info_read関数の使い方 | いっしー@Webエンジニア