我在php中使用google货币转换API使用file_get_content但由于收到错误而无法获取输出,因此如何在Php中使用以下API转换任何货币。
<?php
function convertCurrency($amount, $from, $to)
{
$url = "http://www.google.com/finance/converter?a=$amount&from=$from&to=$to";
$data = file_get_contents($url);
preg_match("/<span class=bld>(.*)<\/span>/",$data, $converted);
return $converted[1];
}
echo convertCurrency(1500, 'USD', 'INR');
?>
像这样得到错误
Message: file_get_contents(http://www.google.com/finance/converter?a=1500&from=USD&to=INR): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
答案 0 :(得分:2)
function thmx_currency_convert($amount){
$url = 'https://api.exchangerate-api.com/v4/latest/USD';
$json = file_get_contents($url);
$exp = json_decode($json);
$convert = $exp->rates->USD;
return $convert * $amount;
}
echo thmx_currency_convert(9);
答案 1 :(得分:0)
几天前我已经回复了very similar question(代码与你的代码差不多)。
我鼓励您阅读我的answer:
您没有调用实际的API,而是在抓取网页,这意味着:
- 您最有可能违反Google的服务条款
- 如果您过于频繁地抓取此页面,则您更有可能在某些时候获得速率限制(或被检测为滥用并被列入黑名单)
这可能是你在这里遇到的。你很可能被列入黑名单。
解决方案:使用适当的API,例如OpenExchangeRates。
答案 2 :(得分:0)
有点晚了,但可能对某些人有帮助, 正如Benjamin所说
您未调用实际的API,而是在抓取网页,这意味着:
- 您最有可能违反Google的服务条款
- 如果您过于频繁地访问此页面,则在某个时候您更有可能受到速率限制(或被检测为滥用并被列入黑名单)
代码段
$url = "https://www.google.com/search?q=INR+to+USD";//Change Accordingly
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
$data = explode("1 Indian Rupee = ",$result);//Change Accordingly
$one_inr_rate_to_usd = (float) substr($data[1],0,7);