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

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

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 には、上記以外の関数やリクエスト時のオプションもあります。詳しくは以下の参考サイトを確認してみてください。

その他の方法で外部のデータを取得

PHPには、便利で簡単に利用できるHTTPクライアントライブラリのGuzzleもあります。

詳しくは以下のリンク先を参考にしてみてください。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。