使用PHP进行货币转换JSON API解析

时间:2012-02-23 00:21:48

标签: php json api parsing

有人可以帮我用PHP解析这个JSON API吗?我需要检索货币汇率。

http://query.yahooapis.com/v1/public/yql?q=select%20 *%20from%20yahoo.finance.xchange%20where%20pair%3D%22eurusd%22安培;格式= JSON&安培;诊断=真安培; ENV =商店%3A%2F%2Fdatatables.org%2Falltableswithkeys&安培;回调= cbfunc

2 个答案:

答案 0 :(得分:1)

首先,您需要省略网址中的最后一个参数,只需删除&callback=cbfunc

获取内容的PHP代码是:

$rawData = file_get_contents("... your url ...");
$parsedData = json_decode($rawData);

$parsedData现在将包含嵌套对象结构中的内容。

更多信息

您需要为此启用fopen包装器才能工作。如果未启用它们,只需使用cURL从页面加载内容并将其放入json_decode

答案 1 :(得分:1)

以下是一个函数,您可以使用相应的3个字符的货币代码(即“USD”到“GBP”)将货币转换为另一种货币。

<?php

  function convertCurrencyUnit($from_Currency, $to_Currency, $unit_amount = 1) {

    $url = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%3D%22' . $from_Currency . $to_Currency . '%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys';

    $rawdata = file_get_contents($url);
    $decodedArray = json_decode($rawdata, true);
    $converted_unit_amount = $decodedArray['query']['results']['rate']['Rate'];

    return $converted_unit_amount * $unit_amount;
  }

?>

例如,请参阅以下对此函数的简单调用。

<?php

  echo convertCurrencyUnit("USD", "GBP");  //Prints "0.5953" to the browser. The current conversion rate from US Dollar to British Pound as of 04-16-2014.

?>

此外,您可以将可选的第三个参数传递给函数,以便在转换完成后进行简单的乘法。