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.
Để minh họa ứng dụng, chúng ta cần tạo 2 file index.php và convert.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.