簡體   English   中英

匯率USD轉換為INR

[英]currency conversion USD to INR

我想將貨幣從USD轉換為INR,USD的值從url檢索,我想根據當前匯率將其轉換為INR。 這是第一個代碼:

<?php 
 require_once('currency.php');

 $val=$_GET["val"];

 echo currency($val);

 ?>

第二個代碼是:

<?php

function currency($val) {
$amount = $val;

 $url = "http://www.google.com/ig/calculator?hl=en&q=$amountUSD=?INR";
 $ch = curl_init();
 $timeout = 0;
 curl_setopt ($ch, CURLOPT_URL, $url);
 curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch,  CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT  6.1)");
 curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
 $rawdata = curl_exec($ch);
 curl_close($ch);
 $data = explode('"', $rawdata);
 $data = explode(' ', $data['3']);
 $var = $data['0'];
 return round($var,3);
 }

 ?>

順便說一下,我正在免費托管網站0fees.net上測試此代碼,因此嘗試將實時USD轉換為INR時是否有任何問題?

錯誤在於以下代碼:

function currency($val) {
    $amount = $val;
    $url = "http://www.google.com/ig/calculator?hl=en&q=$amountUSD=?INR";
    // ...                                              ^^^^^^^^^^
}

php嘗試評估變量$amountUSD (根據php的字符串解析規則 ),並失敗並發出通知:

PHP Notice:  Undefined variable: amountUSD in usdtoinr.php code on line 3

相反,您應該寫:

function currency($val) {
    $amount = floatval($val);
    $url = 'http://www.google.com/ig/calculator?hl=en&q=' . $amount . 'USD=?INR';
    // ...
}

為了將來捕獲這些錯誤,請確保將error_reporting設置為E_ALL | E_STRICT 開發機器上的E_ALL | E_STRICT

此外,谷歌的查詢結果是一個JSON文檔。 由於對象中屬性的順序可能有所不同,因此必須使用適當的JSON解析器(例如json_decode進行解析,如下所示:

$data = json_decode($rawdata, true);
$tmp = explode(' ', $data['rhs']);
return floatval($tmp[0]);

通常,在用戶代理中包含對實際用戶代理(例如,軟件的主頁)的提示也是一個好主意。

使用此PHP代碼

<?php

function currency($from_Currency,$to_Currency,$amount) {
$amount = urlencode($amount);
$from_Currency = urlencode($from_Currency);
$to_Currency = urlencode($to_Currency);
$url = "http://www.google.com/ig/calculator?hl=en&q=$amount$from_Currency=?$to_Currency";
$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,  CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$rawdata = curl_exec($ch);
curl_close($ch);
$data = explode('"', $rawdata);
$data = explode('"', $data['3']);
$var = $data[0];
return round($var,3);
}

?>

並將其用於輸出,當您輸入任何金額時,它將從USD轉換為INR

<?php 
 require_once('currency.php');

  $amount=@$_GET["val"];

$from='USD';

$to='INR';

 echo currency($from,$to,$amount);

 ?>

<form method="get" ><input name="val" type="text"><input type="submit" value="Submit"></form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM