blog

BLOGブログ

ARCHIVES

VAX

郵便番号から住所入力補助するアレが市までしか取れない。。。あっ今日はカレー曜日じゃないからか。

9e4370635ad20a2ec2b50431346fe2ca_s

 

 

全国2000万2024人のファンのみなさま。

お疲れさまです。VAXだず。

 

今日は一か八かつけ麺をお昼に持ち帰りだず。(>_<)

 

うましでした(^^)

 

 

それはさておき、ちょうど一年前くらいに

 

201607270001

 

いますぐ使える!PHPを使って郵便番号から住所入力補助するアレ。あっ今日はカレー曜日だね。

 

 

こんな記事を書いてました。

 

だがしかし、

先日導入しているフォームで何気なく郵便番号を入れてみたら

 

 

までしか表示されなくなってるじゃないかということに気づき怯えました。

 

 

こちらです。

 

カレー曜日じゃないからかなって思ったのですが

念のため、どんなレスポンス返ってきてんのって見てみると

 

 

201607270002

 

おう。

やっぱり変わってるんですね。

 

 

そこで

新バージョンにします。

 

get_address2.php

 

です。

 

 

内容は

 


<?php
$user= array();
$zipcord = (isset($_GET["zipcord"])) ? $_GET["zipcord"] : "";
if(!empty($zipcord)){
$data = 'http://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);
}
?>

 

 

そして最新版がこちらです。

 

 

201607270003

 

きっとすでに気づいてる人は対応してるとは思いますが他サービスを利用してるとこういうこと起きますよねー。。。

 

気づいてない人は参考になればと思います。

 

 

では

この人が書いた記事

VAXの記事をもっと見る

関連する記事