【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を利用する際の基本的な流れは以下となります。
- curl_init()でcURL セッションを初期化
- curl_setopt_array()またはcurl_setopt() でリクエスト時のオプションを設定
- curl_exec() でリクエストの送信を実行
- curl_close() でセッションを終了
その他のcURLの 関数・リクエスト時のオプション
cURL には、上記以外の関数やリクエスト時のオプションもあります。詳しくは以下の参考サイトを確認してみてください。
その他の方法で外部のデータを取得
PHPには、便利で簡単に利用できるHTTPクライアントライブラリのGuzzleもあります。
詳しくは以下のリンク先を参考にしてみてください。