PHP

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

郵便番号検索API(ケンオール)を使ってPHPで住所を取得する方法をご紹介します。
PHPのcurlを使う方法とfile_get_contentsを使う方法、2パターンでやってみました。

郵便番号検索API – ケンオール

APIは以下を使用しました。APIデモも利用できます。
郵便番号検索API – ケンオール

 
利用する場合はケンオールに登録してAPI Keyを取得(有料)する必要があります。
ケンオール料金表

 
トライアル(無料)でもAPI Keyを取得できますが、多分トライアル期間が過ぎると利用出来なくなります。
プランと利用料金

PHPのcurlを使う方法

※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;
?>

PHPのfile_get_contentsを使う方法

※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;
?>

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

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

{
  "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
    }
  ]
}

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