如何在Php中使用google currency API转换货币?

时间:2018-06-19 06:36:10

标签: php api currency

我在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

3 个答案:

答案 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);