ようやく,ProgateのPHPを完了しました.オブジェクト指向はまだ理解できていませんので,今後復習必須です.
そこで,前からやってみたかったAPIを使ってみました.
初めてということで,まずは,郵便番号APIを使ってPHPで住所を取得してみようと思いました.
今回は,郵便番号APIからPHPで住所を取得する方法について紹介します.
APIとは
APIは,Application Programming Interfaceの略です.
Wikipediaによると,「Webサービス等サービスを利用するアプリケーション(Application)を作成する(Programming)ためのインターフェース(Interface)である.」
よくわかりませんが,
WebサービスがAPIというものを公開していて,そのAPIを使えば,外部からそのサービスの情報を取得することができるようです.
よくあるWebサービス登録する際に,facebookやtwitterのアカウントで登録するサービスがあります.あれは,APIを利用しています.
APIについて以下サイトが勉強になります.
参考 いまさら聞けない!APIとは何か?〜基礎の基礎を学ぼう〜侍エンジニア塾が運営するプログラミング入門者向け学習情報サイト
郵便番号検索API
このAPIを使えば,日本郵便が公開している郵便番号データを検索することができます.
例えば,郵便番号「7830060」で検索する場合
http://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060
リンクをクリックして上記URLにアクセスすると,郵便番号「7830060」に対応する住所が表示されます.
この形式をJSON形式といいます.JavaScript Object Notationの略です.JSON形式の説明は以下.
参考 PHPでJSONのデータを処理する方法SyncerこのJSON形式の情報をPHPを使って,取得してみます.
PHPでAPI情報を取得
PHPを使う環境構築については,以下過去記事を参照ください.
最初に
まず,URL先を$urlに格納します.
ファイルの内容を文字列に読み込む関数file_get_contentsを使い,$jsonに格納します.
読み取ったデータを文字化けしないようにします.
JSONから値を取り出す
JSON形式のデータからどうPHPを使って,取得するかを説明していきます.
PHPの場合は,JSON形式をそのままでは扱うことができません,そこで,json_decode()という関数を利用して「配列型(Array)」,または「オブジェクト型(stdClass)」に変換(デコード)する必要があります.
配列型に変換するためには,第二引数をtrueにする必要があります.第二引数をFalseまたは無記入とするとオブジェクト型に変換できます.
この辺の説明は以下が詳しいです.
参考 PHPでJSONのデータを処理する方法Syncerここでは,配列型に変換して,$arrに格納します.
値の取り出し
では,値を取り出してみましょう.
ここでは,address2の南国市を取り出して,$cityに代入します.こんな感じで書いて,
そして,echoしてみると,
しっかり取り出して,表示できました.やった!
他のデータも取り出して,変数に入れて,
echoすると,
と表示されます.
とりあえず,なんとなく,できた.
最後に
本日は,ここまでです.実はここまででも,かなり時間がかかりました.ど素人の独学は大変です.
郵便番号を打ち込んで,クリックすると,住所が表示されるページをまず,作ってみるか.
かっこ悪いプログラムでもいいから,でも,なんか大変そう.面倒い...