使用货币转换器获得更快结果的最佳方式

时间:2016-08-27 12:57:48

标签: php performance api currency codeigniter-3

货币我使用google finance api转换货币,代码低于

 <?php
      function convertCurrency($amount, $from, $to){
        $url  = "https://www.google.com/finance/converter?a=$amount&from=$from&to=$to";
        $data = file_get_contents($url);
        preg_match("/<span class=bld>(.*)<\/span>/",$data, $converted);
        $converted = preg_replace("/[^0-9.]/", "", $converted[1]);
        return round($converted, 3);
      }

      # Call function  
      echo convertCurrency(1, "USD", "INR");
      ?>

一切正常我正在获得正确的转换但现在我面临的问题是在我的网站上很多产品会在那里所以我必须使用foreach迭代所有产品并迭代循环我我正在调用货币转换器功能来根据用户位置转换价格,但随着产品的增加所以转换所有货币所花费的时间也在增加。所以我只想知道有没有其他方法我可以进行这种转换所以它不会影响我的网站的性能。

1 个答案:

答案 0 :(得分:0)

首先作为起点,不要每次都尝试转换所有价格。您只需要转换率,因此每页加载一次api调用。 让我们假设您将价格从美元转换为GNF(我来自几内亚)。 只需转换1美元 - &gt; ? GNF

$UsdToGnfRate=convertCurrency(1, 'USD', 'GNF')

从现在开始,您可以使用此费率将所有产品价格从美元转换为GNF,方法是将产品价格乘以您从api获得的价格

foreach($products as $item){
  $localPrice=$item['price'] * $UsdToGnfRate
}

您可以进行一些测试并查看自己或查找基于费率的货币换算。这样您就不会为页面上的每个产品调用api。