2011-12-13
Googleから為替レートをJSONで取得する方法
仕事で為替レートを扱う必要があったのでちょっと調べてみました。
海外にあるAPIは有料だったり、Yahooファイナンスからゴニョゴニョするのもコード見たらめんどくさそうだ・・・とか思ってたらGoogle先生にステキなAPIを見つけました。
http://www.google.com/ig/calculator?hl=ja&q=変換前の通貨=?変換後の通貨 // 1アメリカドル を日本円に http://www.google.com/ig/calculator?hl=ja&q=1USD=?JPY
PHPで書くとこんな感じで使えます。APIレスポンスのままだとjson_decode()が文字列のパースに失敗してたのでkey値を「"」で囲ってます(ダサイ・・)。
<?php $data = file_get_contents('http://www.google.com/ig/calculator?hl=en&q=1USD=?JPY'); $data = str_replace(array('lhs', 'rhs', 'error', 'icc'), array('"lhs"', '"rhs"', '"error"', '"icc"'), $data); $json = json_decode($data, true); $yen = preg_replace("/[^0-9.]+/", '', $json['rhs']); var_dump($yen);
ファイナンスサイトから頑張ってゴニョゴニョするよりも楽なのでオススメです。
追記
ブコメでid:reasonofreasonから「ダブルクオーテーションで囲まれてないから囲む必要があるということなのだろうか。」というコメントをもらったので補足しておきます。json_decodeはJSON記法を厳密にチェックするのでkey値もクォーテーションで囲んでないとパースしてくれないのです。型チェックは甘いくせにこういう所は厳密だったりするPHPなのでした。
参考リンク
トラックバック - http://d.hatena.ne.jp/Kiske/20111213/1323742318
リンク元
- 986 http://www.google.co.jp/url?sa=t&rct=j&q=緯度経度 距離&source=web&cd=2&ved=0CDsQFjAB&url=http://d.hatena.ne.jp/Kiske/20090324/1237894846&ei=0q3mTtH7IoL4mAX1iOytCg&usg=AFQjCNGDWX_pjnFowTTIMNdl0Y
- 329 http://www.google.co.jp/url?sa=t&rct=j&q=郵便番号+都道府県&source=web&cd=1&ved=0CCoQFjAA&url=http://d.hatena.ne.jp/Kiske/20100126/1264485439&ei=Zb7mTqiGA6uimQX5r7GxCg&usg=AFQjCNEpz0oiL-rN
- 312 http://www.google.co.jp/url?sa=t&rct=j&q=緯度 距離&source=web&cd=1&ved=0CC4QFjAA&url=http://d.hatena.ne.jp/Kiske/20090324/1237894846&ei=9uvmTtzYBO74mAWDxrDDCg&usg=AFQjCNGDWX_pjnFowTTIMNdl0Yi3eM4owQ
- 300 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCYQFjAA&url=http://d.hatena.ne.jp/Kiske/20100126/1264485439&ei=wtEgT464FNCWiQfn2ozhBA&usg=AFQjCNEpz0oiL-rNi7RtpN_8vkegQFGq5Q&sig2=2c4hcAjML9l9WUPe_7smTw
- 294 http://www.1x1.jp/blog/2010/01/php-basic-syntax.html
- 234 http://search.yahoo.co.jp/search?p=緯度経度 距離&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=緯度経度
- 207 http://www.google.co.jp/url?sa=t&rct=j&q=緯度 経度 距離&source=web&cd=3&sqi=2&ved=0CEQQFjAC&url=http://d.hatena.ne.jp/Kiske/20090324/1237894846&ei=jsrmTtiPPO2ImQWe18TGCg&usg=AFQjCNGDWX_pjnFowTTIMNd
- 200 http://www.google.co.jp/url?sa=t&rct=j&q=mysql パフォーマンス&source=web&cd=1&sqi=2&ved=0CCcQFjAA&url=http://d.hatena.ne.jp/Kiske/20080717/1216279855&ei=k9HmTqrlE4iimQXKxryuCg&usg=AFQjCNFICf8B
- 164 http://www.google.co.jp/search?hl=ja&source=hp&q=緯度経度+距離&gbv=2&oq=緯度経度&aq=3&aqi=g4g-rJ1g3g-rJ1g1&aql=&gs_sm=c&gs_upl=1312l4000l0l7187l10l9l0l0l0l3l312l1872l0.4.4.1l9l0
- 160 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDYQFjAB&url=http://d.hatena.ne.jp/Kiske/20090324/1237894846&ei=a_kYT-fNJayWiQeY0OXfCw&usg=AFQjCNGDWX_pjnFowTTIMNdl0Yi3eM4owQ


