PHP

郵便番号検索API(ケンオール)を使ってPHPで住所を取得する方法

本記事では、郵便番号検索API(ケンオール)を活用し、PHPを使って郵便番号から住所を取得する方法について解説します。
分かりやすいよう、具体的なサンプルコードや手順を詳しく説明しています。
今回は、PHPのcurl関数を使用する方法と、file_get_contents関数を使用する方法という2つのアプローチをご紹介します。それぞれの利点と注意点も含めて解説するので、ぜひご参考ください。

ケンオールAPIの特徴:

  • 高精度 – 最新の郵便番号データベースを元に正確な情報を提供。
  • 柔軟性 – 様々なプログラミング言語で利用可能。
  • 有料/無料プラン – ニーズに合わせた利用プランが選べる。

以下の公式リンクで、APIの詳細や料金プランを確認できます。

無料トライアル期間中に試すことも可能です。ただし、トライアル期間終了後は有料プランへの移行が必要になる場合があります。

API利用準備

APIを利用するための準備として、以下の手順を行います:

  1. ケンオール公式サイトでアカウントを作成。
  2. ログイン後、API Keyを取得。
  3. 必要に応じて利用プランを選択(無料トライアルも可能)。

API Keyは、後ほどPHPコード内で使用するので、大切に保管してください。

PHPのcurlを使う方法

まずは、curlを使った方法を説明します。curlはPHPで外部APIにリクエストを送信する際によく使われる関数です。非同期処理や高度な設定が可能で、高い柔軟性を持っています。
PHPのcurlを使って郵便番号から住所情報を取得する記述は以下の通りです。「$YOUR_API_KEY」はAPI Key、「ZIPCODE」は郵便番号になります。

<?php 
header("Content-Type: application/json; charset=utf-8");

$header = [
"Authorization: Token $YOUR_API_KEY",
];
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,'https://api.kenall.jp/v1/postalcode/ZIPCODE');
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);

$output= curl_exec($curl);

// エラーハンドリング取得
$errno = curl_errno($curl);
// コネクションclose
curl_close($curl);

// エラーハンドリング結果
if ($errno !== CURLE_OK) {
    //エラー処理
    echo "エラー";
}

echo $output;
?>

ポイント解説:
  • curl_setoptでリクエストの詳細を設定。
  • レスポンスはcurl_execで取得。
  • HTTPステータスコードをチェックしてエラーハンドリングを実装。

PHPのfile_get_contentsを使う方法

次に、file_get_contentsを使う方法を紹介します。この方法はcurlに比べてシンプルですが、大規模な処理には向いていない場合があります。
PHPのfile_get_contentsをを使って郵便番号から住所情報を取得する記述は以下の通りです。「$YOUR_API_KEY」はAPI Key、「ZIPCODE」は郵便番号になります。

<?php 
header("Content-Type: application/json; charset=utf-8");

$param = array('http' =>
  array(
    'method'=>"GET",
    'header'=>"Authorization: Token $YOUR_API_KEY"
  )
);

$sccres  = stream_context_create($param);
$output = @file_get_contents("https://api.kenall.jp/v1/postalcode/ZIPCODE",false,$sccres);

//返値($output)が無しの場合
if($output==""){
	//エラー処理
	echo "エラー";
}

echo $output;
?>

ポイント解説:
  • HTTPコンテキストを使用してリクエストヘッダーを設定。
  • @file_get_contentsでエラーハンドリング。

レスポンス(住所情報取得)結果例

郵便番号から住所情報を取得した結果は以下の様な情報が取得できます。

{
  "version": "2021-06-30",
  "data": [
    {
      "jisx0402": "13101",
      "old_code": "100",
      "postal_code": "1000001",
      "prefecture_kana": "トウキョウト",
      "city_kana": "チヨダク",
      "town_kana": "チヨダ",
      "town_kana_raw": "チヨダ",
      "prefecture": "東京都",
      "city": "千代田区",
      "town": "千代田",
      "koaza": "",
      "kyoto_street": "",
      "building": "",
      "floor": "",
      "town_partial": false,
      "town_addressed_koaza": false,
      "town_chome": false,
      "town_multi": false,
      "town_raw": "千代田",
      "corporation": null
    }
  ]
}

レスポンスデータはJSON形式で提供されます。必要な情報(例:都道府県、市区町村)を取得するには、json_decode関数を使用してパースします。

まとめ

ケンオールの郵便番号検索APIを利用することで、PHPを使った効率的な住所情報の取得が可能です。
本記事で紹介したcurlとfile_get_contentsの2つの方法を活用し、用途に応じた実装を選んでください。

今後、さらに便利な活用法や他のAPIとの連携方法についても記事を更新していく予定です。ぜひチェックしてください!

 
※流用される場合は自己責任でお願いします。