【PHP】cURL関数で外部データを取得する例|APIのJSON・XMLデータなど

PHPで外部のデータを取得する場合、file_get_contents関数が利用できますが、今回は、cURL関数を使い外部のデータを取得する例となります。

cURL 関数について

cURL関数は、多くの異なるプロトコルでサーバーと接続し通信できる関数となり、PHPにlibcurl パッケージをインストールすることで利用できます。

また、cURL関数では、転送時にさまざまなオプションを設定することも可能です。

【PHP】cURLでAPIなどの外部データを取得する例

以下、cURL関数でAPIなどの外部データを取得する例となります。

<?php
$url = "https://example.com/XXXXXXXX";

//  cURLセッションを初期化
$ch = curl_init();

// 転送時のオプションを配列で設定
$options = array(
	// 取得するURLを指定
	CURLOPT_URL => $url,
	// trueの場合、curl_exec() の戻り値が文字列
	CURLOPT_RETURNTRANSFER => true,
	// 接続の試行を待ち続ける秒数を指定
	CURLOPT_CONNECTTIMEOUT => 5,
	// falseの場合、サーバー証明書の検証をしない。HTTPS接続がエラーの際に設定
	CURLOPT_SSL_VERIFYPEER => false
);
curl_setopt_array($ch, $options);

// 転送を実行
$results = curl_exec($ch);

// cURLセッションを終了
curl_close($ch);
?>

cURL 関数を利用する流れ

上記例のように、cURL関数を利用する基本的な流れは、以下となります。

  1. curl_init()により cURL セッションを初期化
  2. curl_setopt_array()またはcurl_setopt() により転送時のオプションを設定
  3. curl_exec() により転送を実行
  4. curl_close() によりセッションを終了

また、取得したデータをPHPで扱えるオブジェクト・連想配列に変換する場合は、以下のリンク先を参考にしてみてください。

その他のcURL 関数・転送時のオプション

cURL 関数には、複数の cURL のハンドル(間接参照)を作成し非同期で実行できる関数など、上記以外の関数や転送時のオプションもあります。

詳しくは以下の参考サイト内を確認してみてください。

参考サイトなど

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はこちらから。

また、コメントは承認制となります。