0

我正在尝试在我的项目中实现这个 Google Finance Converter。我实现了它,然后它工作正常。但是今天,当我重新检查我的应用程序以确保一切正常时,我发现 Google Finance Converter API 无法正常工作并且还返回错误。

PHP 代码

/*********** Google Finance API ************/
  $from_Currency = "USD";
  $to_Currency = "INR";
  $encode_amount = $amount;
  $get = file_get_contents("http://finance.google.com/finance/converter?a=$encode_amount&from=$from_Currency&to=$to_Currency");
  $get = explode("<span class=bld>",$get);
  $get = explode("</span>",$get[1]);
  $converted_currency = preg_replace("/[^0-9\.]/", null, $get[0]);
  /*********** End Google Finance API ************/

它返回类似 Undefined offset: 1

完整的错误代码

 Notice: Undefined offset: 1 in E:\xampp\htdocs\sites\redapple\gateways\payumoney\payumoney.php on line 31

在我的代码中,这一行代表第 31 行 $get = explode("</span>",$get[1]);

请帮忙。

4

2 回答 2

1

这是因为 google 已经停止提供金融 api 甚至 Finance.google.com 将我们带到谷歌金融标签

于 2018-03-26T10:30:43.550 回答
0

我也使用了这个 Google API。感谢duckduckgo(他们有货币转换器)找到了xe.com 网站。正如 Gurpreet Singh 所建议的那样。

这是我重做的版本。显然这是课堂的一部分。

private static function convertCurrency($amount, $from, $to) {
    $url  = "https://www.xe.com/currencyconverter/convert/?Amount={$amount}&From={$from}&To={$to}";
    $data = @file_get_contents($url);
    if ( ! $data)
    {
        return null;
    }
    preg_match_all("/<span class='uccResultAmount'>([0-9.]*)<\/span>/", $data, $converted);
    try
    {
        $final = $converted[1][0];
    } catch (\Exception $e)
    {
        return null;
    }

    return round($final, 2);
}

让我们希望这能继续工作一段时间。其他(免费)解决方案与美元绑定到有限的货币。如果您需要欧元兑菲律宾比索怎么办?

于 2018-04-07T16:55:56.677 回答