UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#054 PHPでcURLの機能を利用する方法。libcurlライブラリ

記入日:2023-03-03 編集日:2023-03-03

SQL見るだけクエリ。今回は、PHPのlibcurlライブラリの使い方について考えてみようと思います。

この記事を読むと(約10分)
PHPのlibcurlライブラリを使って、APIでJSONをPHPで読み込む方法がイメージできます。

cURLとは、様々なプロトコル(通信手順)を用いてURLで示されるネットワーク上の場所との間でデータの送受信を行うコマンドラインツールやプログラムのことです。PHPでは、libcurlというライブラリを使ってcURLの機能を利用できます。

cURLのAPIでJSONをPHPで読み込むには、以下のような手順が必要です。

  1. curl_init関数でcURLセッションを初期化します。
  2. curl_setopt関数でオプションを設定します。例えば、CURLOPT_URLで取得したいJSONファイルのURLを指定します。
  3. curl_exec関数で実際にデータを取得します。この関数は取得したデータを文字列として返します。
  4. curl_close関数でcURLセッションを終了します。
  5. 取得したデータがJSON形式なら、json_decode関数で連想配列やオブジェクトに変換します。

具体的なコード例は以下のようになります。

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

// オプションを設定
curl_setopt($ch, CURLOPT_URL, "https://example.com/data.json"); // JSONファイルのURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // データを文字列として返す

// データを取得
$data = curl_exec($ch);

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

// JSON形式なら連想配列に変換
$array = json_decode($data, true);

// 結果を表示
print_r($array);
 

curl_setopt関数は、cURLのオプションを設定するための関数です。
オプションには様々な種類がありますが、例えば以下の様なものがあります。

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

- CURLOPT_CUSTOMREQUESTは、HTTPリクエストメソッドを指定するオプションです。
例えば、'GET'や'POST'などを指定できます。デフォルトでは、URLにクエリ文字列が含まれている場合はGETメソッド、 CURLOPT_POSTFIELDSが設定されている場合はPOSTメソッドになります。

- CURLOPT_HTTPHEADERは、HTTPヘッダーを指定するオプションです。
例えば、'Content-Type: application/json'や'User-Agent: curl/7.64.1'などを指定できます。
配列で複数のヘッダーを渡すことができます。

具体的なコード例は以下のようになります。

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

// オプションを設定
curl_setopt($ch, CURLOPT_URL, "https://example.com/data.json"); // JSONファイルのURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // データを文字列として返す
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); // HTTPリクエストメソッドをGETに指定
$headers = array(
  'Content-Type: application/json', // コンテントタイプをJSONに指定
  'User-Agent: curl/7.64.1', // ユーザーエージェントをcurlに指定
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // HTTPヘッダーを指定

// データを取得
$data = curl_exec($ch);

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

// JSON形式なら連想配列に変換
$array = json_decode($data, true);

// 結果を表示
print_r($array);
 

その他、API-KEYなどをCURLOPT_HTTPHEADERで指定する場合もあります。
CURLOPT_HTTPHEADERは、HTTPリクエストにカスタムヘッダーを追加するためのオプションです。
例えば、以下のように書くと、API-KEYというヘッダーに値を設定して送信できます。

$ch = curl_init($url);
$headers = array(
  'API-KEY: xxxxxxxx'
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_exec($ch);
curl_close($ch);

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。