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

作成日: 更新日:

curl_multi_getcontent関数は、PHPのcURL拡張機能の一部として、複数のウェブサイトへのリクエストを並行して処理する「マルチCURL」の仕組みにおいて、個々の通信が完了した後にその応答内容(コンテンツ)を取得するために実行する関数です。

この関数は、curl_multi_exec()などの関数で同時に実行された複数のCURLリクエストの中から、特定のCURLハンドル(個々の通信を識別するためのもの)が正常に完了した際に、その通信によって取得されたデータ本体(ウェブページのHTMLソースコードやAPIからのJSONデータなど)を取り出す目的で使用されます。具体的には、引数として、コンテンツを取得したいCURLハンドルを一つ指定します。関数が成功すると、サーバーからの応答ボディが文字列として返されます。もし、指定されたCURLハンドルがまだ処理中であるか、何らかのエラーが発生した場合には、falseが返されることがあります。

複数のウェブサイトから情報を効率的に収集したり、複数のAPIエンドポイントへ並行してアクセスして結果を統合したりするような、時間のかかるネットワーク通信処理を高速化する際に、この関数は各通信の最終的な結果を確認するために重要な役割を果たします。

基本的な使い方

構文(syntax)

<?php
// 有効な cURL ハンドルを想定
$ch = curl_init();

// 実際の使用では、$ch は curl_multi_add_handle() で追加され、
// curl_multi_exec() で処理が完了した後の個別の cURL ハンドルです。
// 例としてダミーのURLを設定
curl_setopt($ch, CURLOPT_URL, 'http://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// ここで curl_multi_exec() などのマルチリクエスト処理が行われ、
// $ch のリクエストが完了したと仮定します。

$content = curl_multi_getcontent($ch);

// $content には取得された文字列、または失敗時に false が格納されます。
// var_dump($content);

curl_close($ch);
?>

引数(parameters)

CurlHandle $multi_handle, CurlHandle $handle

  • CurlHandle $multi_handle: 複数の転送を管理するためのCurlHandleオブジェクト
  • CurlHandle $handle: コンテンツを取得したい個別の転送のためのCurlHandleオブジェクト

戻り値(return)

戻り値なし

戻り値はありません

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