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

SQL見るだけクエリ#055 PHPでcURLの機能を利用する方法。追記

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

SQL見るだけクエリ。今回は、PHPのcURLを使ってAPIを利用する方法について考えてみようと思います。

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

cURLは、PHPの外部ライブラリで、外部サイトへのアクセスを制御できるものです。
cURLで使えるオプションは多数ありますが、代表的なものは以下のとおりです。

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

  • CURLOPT_URL: 転送する URL を設定します。
  • CURLOPT_RETURNTRANSFER: TRUE に設定すると、curl_exec() の返り値を文字列にします。
  • CURLOPT_POST: TRUE に設定すると、POST メソッドで転送します。
  • CURLOPT_POSTFIELDS: POST メソッドで送信するデータを指定します。
  • CURLOPT_HEADER: TRUE に設定すると、ヘッダ情報も出力します。
  • CURLOPT_SSL_VERIFYPEER: FALSE に設定すると、SSL 証明書の検証を行いません。

 

cURLを使って天気予報のAPIを利用するコード例を書いてみます。

天気予報のAPIとしては、OpenWeatherMapが有名です。
このAPIを使うには、まずアカウントを登録してAPIキーを取得する必要があります。
その後、PHPでcURLを使ってAPIにリクエストを送り、レスポンスとしてJSON形式のデータを受け取ります。
そのデータから気温などの情報を抽出して、画面に表示します。

// APIキー(自分で取得したものに置き換える)
$apiKey = "xxxxxxxxxxxxxxxxxxxxxx";

// 都市名(任意の都市に変更可能)
$cityName = "Tokyo";

// APIのURL(都市名とAPIキーを結合して作成)
$url = "http://api.openweathermap.org/data/2.5/weather?q=".$cityName."&appid=".$apiKey;

// cURLでリクエストを送る
$ch = curl_init(); // cURLセッションを初期化する
curl_setopt($ch, CURLOPT_URL, $url); // 転送するURLを設定する
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返り値を文字列にする
$response = curl_exec($ch); // 転送を実行し、レスポンスを受け取る
curl_close($ch); // cURLセッションを閉じる

// JSON形式のデータを連想配列に変換する
$data = json_decode($response, true);

// 気温(ケルビン)を摂氏に変換する(ケルビンから273.15引く)
$temp = $data["main"]["temp"] - 273.15;

// 画面に表示する(echo関数で出力)
echo "今日の".$cityName."の気温は".$temp."度です。";

SQLの使いどころ

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

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

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

KK

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