2012-02-20 241 views
0

我想將貨幣從USD兌換成INR,USD中的值從url中回收,我想根據當前匯率將其兌換成INR。 這裏是第一碼:貨幣換算USD到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); 
} 

?> 

bytheway正在測試上0fees.net這個代碼,免費的託管網站,那麼有沒有對於任何問題我正在嘗試將美元兌換成INR兌換。

+0

任何量什麼問題? – Pheonix 2012-02-20 13:33:59

+0

和?這裏有問題嗎? – 2012-02-20 13:34:28

+0

它不起作用。任何人都可以給我一個合適的解決方案? – dhruba 2012-02-20 13:35:10

回答

2

錯誤在於以下代碼:

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

PHP嘗試計算變量$amountUSD(根據PHP的string parsing rules)和失敗的通知:

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_reportingE_ALL | E_STRICT

此外,谷歌查詢的結果是一個JSON文檔。由於在對象屬性的順序可能會有所不同,你必須使用正確的JSON解析器,例如json_decode解析它,就像這樣:

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

在一般情況下,這也是一個好主意,包括一個提示您用戶代理中的實際用戶代理(例如,軟件的主頁)。

+1

也檢查出json_decode解析Google返回的數據應該比第一個爆炸()更可靠。 – h00ligan 2012-02-20 13:41:39

+1

謝謝,沒有發現。更新了答案。 – phihag 2012-02-20 13:43:51

+0

在這個領域是一個新手,你可以編輯這一個確切的變化嗎? – dhruba 2012-02-20 13:49:28

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); 
} 

?> 

,並使用這個輸出,當你進入它會從美元轉換爲INR

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

    [email protected]$_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> 
+0

這是簡單的複製粘貼模塊,你沒有gt我的觀點。 – dhruba 2012-02-20 13:56:41

+0

你的意思是你在免費託管上運行這個,所以bro免費託管curl沒有啓用...這就是我們不使用捲曲,你必須使用任何託管curl啓用...我正在使用000webhost.com,但不確定是否支持捲曲....讓我找到並讓你知道... – 2012-02-20 13:59:40

+0

是的,你可以使用它http://000webhost.com我已經上傳它,你可以檢查在我的免費託管.... http://amughal4u.co.cc/currency/ – 2012-02-20 14:04:30