【PHP】cURLを利用し外部データを取得する例|APIを利用する場合など

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

cURL について

cURLは、さまざまなプロトコルでサーバーと接続し通信できるツールとなり、転送時にはオプションを設定することも可能です。

PHPでは、libcurl パッケージをインストールすることでcURLを利用できます。また、WordPressではデフォルトでcURLを利用できます。

【PHP】cURLを利用し外部データを取得する例

以下、PHPのcURLを利用し、外部データを取得する例となります。また、cURLのリクエストはデフォルトではGET メソッドとなり、変更する場合にはオプションで変更します。

<?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
);
curl_setopt_array($ch, $options);

// リクエストを送信しデータを取得
$results = curl_exec($ch);

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

SSL証明書の検証によりリクエストがエラーとなる場合

ローカルのテスト環境でcURLを利用してリクエストを送信する際に、SSL証明書の検証を求められて、エラーとなる場合があるかもしれません。

その場合、今回の例では、curl_setopt_array関数で指定したオプションの配列に、次の要素を追加することで、SSL証明書の検証を無効にできます。

// falseの場合、SSL証明書の検証をしない
CURLOPT_SSL_VERIFYPEER => false

cURLを利用する際の流れ

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

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

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

cURL には、上記以外の関数や転送時のオプションもあります。詳しくは以下の参考サイトを確認してみてください。

参考サイトなど

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

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

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