[PHP] 為替レートを取得する

PHP

PHP で為替レートを取得する方法。
為替レートを取得できる API は、無料のとこ少ないし、アカウント登録したり、口座を作らなければならないことがほとんど。「外為オンライン」が登録とか無しで、必要な通貨ペアの為替レートを提供してくれているのでこちらを利用させてもらった。 json になっているので、 JavaScript とか、 PHP でなくても使える。

「外為オンライン」から為替レートを取得

「外為オンライン」の為替レートデータ
https://www.gaitameonline.com/rateaj/getrate

ここにアクセスすると、以下のようなデータがある。

{"quotes":[{"high":"1.8740","open":"1.8707","bid":"1.8732","currencyPairCode":"GBPNZD","ask":"1.8749","low":"1.8682"},
{"high":"79.52","open":"79.49","bid":"79.49","currencyPairCode":"CADJPY","ask":"79.54","low":"79.42"},
{"high":"1.7894","open":"1.7866","bid":"1.7881","currencyPairCode":"GBPAUD","ask":"1.7890","low":"1.7866"},
...

PHP で json データを取得

為替レート取得コードサンプル


$url = "https://www.gaitameonline.com/rateaj/getrate";
$content = file_get_contents($url);
$data = json_decode($content, true);
if (empty($data)) {
        return;
} else {
  foreach($data as $row) {
    foreach($row as $r) {
      echo $r["currencyPairCode"]." -> ";
      echo "/ bid : ".$r["bid"];
      echo " / ask : ".$r["ask"];
      echo " / open : ".$r["open"];
      echo "
"; } } }

file_get_contents($url) で、ファイルの中身を文字列として読み込む。
json_decode($content, true) では、第二引数を true にすると連想配列になる。指定しない、または false にすると、オブジェクト形式になる。

出力結果

GBPNZD -> / bid : 1.8735 / ask : 1.8752 / open : 1.8707
CADJPY -> / bid : 79.50 / ask : 79.55 / open : 79.49
GBPAUD -> / bid : 1.7884 / ask : 1.7893 / open : 1.7866
AUDJPY -> / bid : 71.06 / ask : 71.09 / open : 71.03
AUDNZD -> / bid : 1.0472 / ask : 1.0482 / open : 1.0461
EURCAD -> / bid : 1.4843 / ask : 1.4850 / open : 1.4833
EURUSD -> / bid : 1.1215 / ask : 1.1216 / open : 1.1213
NZDJPY -> / bid : 67.80 / ask : 67.86 / open : 67.83
USDCAD -> / bid : 1.3235 / ask : 1.3241 / open : 1.3234
EURGBP -> / bid : 0.9284 / ask : 0.9288 / open : 0.9283
GBPUSD -> / bid : 1.2076 / ask : 1.2079 / open : 1.2074
ZARJPY -> / bid : 6.805 / ask : 6.955 / open : 6.810
EURCHF -> / bid : 1.0867 / ask : 1.0872 / open : 1.0866
CHFJPY -> / bid : 108.59 / ask : 108.64 / open : 108.61
AUDUSD -> / bid : 0.6750 / ask : 0.6752 / open : 0.6747
USDCHF -> / bid : 0.9689 / ask : 0.9693 / open : 0.9690
EURJPY -> / bid : 118.06 / ask : 118.08 / open : 117.97
GBPCHF -> / bid : 1.1701 / ask : 1.1710 / open : 1.1699
EURNZD -> / bid : 1.7399 / ask : 1.7411 / open : 1.7379
NZDUSD -> / bid : 0.6440 / ask : 0.6446 / open : 0.6442
USDJPY -> / bid : 105.26 / ask : 105.27 / open : 105.28
EURAUD -> / bid : 1.6608 / ask : 1.6616 / open : 1.6609
AUDCHF -> / bid : 0.6540 / ask : 0.6546 / open : 0.6539
GBPJPY -> / bid : 127.13 / ask : 127.16 / open : 127.09

Posted by Agopeanuts