货币我使用谷歌金融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来迭代所有产品,在迭代循环时,我调用货币转换函数来根据用户位置转换价格,但是随着产品的增加,转换所有货币所需的时间也在增加。所以我想知道有没有其他的方法来完成这个转换这样它就不会影响我网站的性能了
首先,不要尝试每次都转换所有的价格。你只需要一个转化率,所以每个页面加载一个api调用。假设您正在将价格从美元转换为GNF(我来自几内亚)。从1美元兑换-> ?GNF
$UsdToGnfRate=convertCurrency(1, 'USD', 'GNF')
从现在开始,您可以使用此汇率将所有产品价格从美元转换为GNF,方法是将产品价格乘以从api获得的汇率
foreach($products as $item){
$localPrice=$item['price'] * $UsdToGnfRate
}
您可以做一些测试,看看自己或寻找基于汇率的货币转换。这样,您就不必为页面上的每个产品调用api。