Tạo ứng dụng Qui Đổi Tiền Tệ với PHP và Google Finance

28/05/2014

Có rất nhiều công ty tài chính hay bất động sản khi yêu cầu thiết kế web, thường đòi hỏi mục hiển thị tỷ lệ giá tiền tệ cũng như chức năng cho phép người xem khi viếng thăm website của họ có thể tự tay chuyển đổi đơn vị tiền tệ theo tỷ giá mới nhất. Nếu các bạn đang phân vân chưa biết làm sao thì qua bài viết này,mình sẽ chia sẻ cho các bạn đoạn code bằng PHP giúp các bạn có thể tạo ứng dụng như thế ngay trên website hay blog của mình.

convert-currency-using-google-finance-in-php

Xem Demo | Download

Để minh họa ứng dụng, chúng ta cần tạo 2 file index.phpconvert.php.

Index.php

File này sẽ chứa danh sách các đơn vị tiền tệ cần chuyển đổi và một ô nhập giá trị cần đổi.

<?php
include "convert.php";
$from 		= isset($_POST['from']) ? $_POST['from'] : '';
$to 		= isset($_POST['to']) ? $_POST['to'] : '';
$amount 	= isset($_POST['amount']) ? $_POST['amount'] : '';
$content = "";
if($_POST){
    if(!is_numeric($amount)){
	$content .= "<br><span style='background-color:red;padding:5px;color:#fff;'>Invalid amount.</span>";
    }
    elseif($from == $to){
	$content .= "<br><span style='background-color:red;padding:5px;color:#fff;'>Please select distinct currencies.</span>";
    }
    else{
	$rawData = currencyConvert($from,$to,$amount);
	$regex 	= '#\<span class=bld\>(.+?)\<\/span\>#s';
	preg_match($regex, $rawData, $converted);
	$result = $converted[0];
	if($result == ""){
	    $content .= "<br><span style='background-color:red;padding:5px;color:#fff;'>Exchange Rate not available.</span>";
	}
	else{
	    $content .= "<br><span style='background-color:lime;padding:5px;'>".$amount." ".$from." = ".$result."</span>";
	}
    }
}
$listFrom = '
<select name="to">
<option  value="AED">United Arab Emirates Dirham (AED)</option>
<option  value="EUR">Euro (€)</option>
<option  value="GBP">British Pound Sterling (£)</option>
<option  value="INR">Indian Rupee (Rs.)</option>
<option  value="PKR">Pakistani Rupee (PKR)</option>
<option  value="SGD">Singapore Dollar (SGD)</option>
<option  value="USD">US Dollar ($)</option>
</select>
';

$listTo = '
<select name="to">
<option  value="AED">United Arab Emirates Dirham (AED)</option>
<option  value="EUR">Euro (€)</option>
<option  value="GBP">British Pound Sterling (£)</option>
<option  value="INR">Indian Rupee (Rs.)</option>
<option  value="PKR">Pakistani Rupee (PKR)</option>
<option  value="SGD">Singapore Dollar (SGD)</option>
<option  value="USD">US Dollar ($)</option>
</select>
';
$listFrom  = str_replace("\"$from\"","\"$from\" selected",$listFrom); // Make dropdown selected
$listTo    = str_replace("\"$to\"","\"$to\" selected",$listTo); // Make dropdown selected

$content .='<form action="" method="post" name="f">
<input name="amount" maxlength="12" size="5" autocomplete="off" value="'.$amount.'"><br />
<div>
'.$listFrom.'
</div>
<div style="padding: 6px 8px">to</div>
<div>
'.$listTo.'
</div>
<input type=submit value="Convert">
</form>';
?>

convert.php

Đây chính là chìa khóa của bài viết, các bạn copy toàn bộ đoạn code bên dưới và dán vào file này để thực hiện quá trình chuyển đổi tiền tệ.

<?php
function currencyConvert($from,$to,$amount){

    $url = "http://www.google.com/finance/converter?a=$amount&from=$from&to=$to"; 

    $request = curl_init();
    $timeOut = 0;
    curl_setopt ($request, CURLOPT_URL, $url);
    curl_setopt ($request, CURLOPT_RETURNTRANSFER, 1); 

    curl_setopt ($request, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
    curl_setopt ($request, CURLOPT_CONNECTTIMEOUT, $timeOut);
    $response = curl_exec($request);
    curl_close($request); 

    return $response;
}
?>

Hàm currencyConvert sẽ nhận 3 tham số và gửi đến cho Google finance bằng cách sử dụng  HTTP và nó sẽ trả về kết quả. Mình hy vọng là qua bài viết này, các bạn sẽ có kinh nghiệm trong việc sử dụng Google finance cũng như có thêm một ứng dụng hay cho website hay blog của mình.

Chúc các bạn thành công !

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !