全国2000万2024人のファンのみなさま。
お疲れさまです。VAXだず。
今日は一か八かつけ麺をお昼に持ち帰りだず。(>_<)
うましでした(^^)
それはさておき、ちょうど一年前くらいに
いますぐ使える!PHPを使って郵便番号から住所入力補助するアレ。あっ今日はカレー曜日だね。
こんな記事を書いてました。
だがしかし、
先日導入しているフォームで何気なく郵便番号を入れてみたら
市
までしか表示されなくなってるじゃないかということに気づき怯えました。
こちらです。
カレー曜日じゃないからかなって思ったのですが
念のため、どんなレスポンス返ってきてんのって見てみると
おう。
やっぱり変わってるんですね。
そこで
新バージョンにします。
get_address2.php
です。
内容は
<?php
$user= array();
$zipcord = (isset($_GET["zipcord"])) ? $_GET["zipcord"] : "";
if(!empty($zipcord)){
$data = '//maps.googleapis.com/maps/api/geocode/json?sensor=true&language=ja&address='.$zipcord;
$json = file_get_contents($data);
if ($json == false) {
echo "false";
return;
}
$obj = json_decode($json,true);
//配列の中身をカウント [result] の 最初の配列の [address_components]
$count =count($obj['results'][0]['address_components']);
for ($a=0;$a<$count;$a++){
$result = $obj['results'][0]['address_components'];
//都道府県名
if ( in_array('administrative_area_level_1', $result[$a]['types'], true) ) {
$location1 = $result[$a]['long_name'];
}
if ( in_array('locality', $result[$a]['types'], true) && in_array('political', $result[$a]['types'], true) ) {
if ( in_array('ward', $result[$a]['types'], true) ) {
//区
$location3 = $obj['results'][0]['address_components'][$a]['long_name'];
} else {
//市
$location2 = $obj['results'][0]['address_components'][$a]['long_name'];
}
}
//以下
if ( in_array('sublocality', $result[$a]['types'], true) ) {
$location4 = $result[$a]['long_name'];
}
}
$user[] = array( 'location1' => $location1. $location2.$location3.$location4,);
//jsonとして出力
header('Content-type: application/json');
echo json_encode($user);
}
?>
そして最新版がこちらです。
きっとすでに気づいてる人は対応してるとは思いますが他サービスを利用してるとこういうこと起きますよねー。。。
気づいてない人は参考になればと思います。
では