Thứ Tư, 19 tháng 11, 2014

Qui Đổi Tiền Tệ và Google Finance với PHP




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.

1.     <?php
2.     include "convert.php";
3.     $from       = isset($_POST['from']) ? $_POST['from'] : '';
4.     $to         = isset($_POST['to']) ? $_POST['to'] : '';
5.     $amount     = isset($_POST['amount']) ? $_POST['amount'] : '';
6.     $content = "";
7.     if($_POST){
8.     if(!is_numeric($amount)){
9.     $content .= "<br><span style='background-color:red;padding:5px;color:#fff;'>Invalid amount.</span>";
10. }
11. elseif($from == $to){
12. $content .= "<br><span style='background-color:red;padding:5px;color:#fff;'>Please select distinct currencies.</span>";
13. }
14. else{
15. $rawData = currencyConvert($from,$to,$amount);
16. $regex  = '#\<span class=bld\>(.+?)\<\/span\>#s';
17. preg_match($regex, $rawData, $converted);
18. $result = $converted[0];
19. if($result == ""){
20. $content .= "<br><span style='background-color:red;padding:5px;color:#fff;'>Exchange Rate not available.</span>";
21. }
22. else{
23. $content .= "<br><span style='background-color:lime;padding:5px;'>".$amount." ".$from." = ".$result."</span>";
24. }
25. }
26. }
27. $listFrom = '
28. <select name="to">
29. <option  value="AED">United Arab Emirates Dirham (AED)</option>
30. <option  value="EUR">Euro (€)</option>
31. <option  value="GBP">British Pound Sterling (£)</option>
32. <option  value="INR">Indian Rupee (Rs.)</option>
33. <option  value="PKR">Pakistani Rupee (PKR)</option>
34. <option  value="SGD">Singapore Dollar (SGD)</option>
35. <option  value="USD">US Dollar ($)</option>
36. </select>
37. ';

38. $listTo = '
39. <select name="to">
40. <option  value="AED">United Arab Emirates Dirham (AED)</option>
41. <option  value="EUR">Euro (€)</option>
42. <option  value="GBP">British Pound Sterling (£)</option>
43. <option  value="INR">Indian Rupee (Rs.)</option>
44. <option  value="PKR">Pakistani Rupee (PKR)</option>
45. <option  value="SGD">Singapore Dollar (SGD)</option>
46. <option  value="USD">US Dollar ($)</option>
47. </select>
48. ';
49. $listFrom  = str_replace("\"$from\"","\"$from\" selected",$listFrom); // Make dropdown selected
50. $listTo    = str_replace("\"$to\"","\"$to\" selected",$listTo); // Make dropdown selected

51. $content .='<form action="" method="post" name="f">
52. <input name="amount" maxlength="12" size="5" autocomplete="off" value="'.$amount.'"><br />
53. <div>
54. '.$listFrom.'
55. </div>
56. <div style="padding: 6px 8px">to</div>
57. <div>
58. '.$listTo.'
59. </div>
60. <input type=submit value="Convert">
61. </form>';
62. ?>

 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ệ.

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

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

4.     $request = curl_init();
5.     $timeOut = 0;
6.     curl_setopt ($request, CURLOPT_URL, $url);
7.     curl_setopt ($request, CURLOPT_RETURNTRANSFER, 1);

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

12. return $response;
13. }
14. ?>

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.

Tin khác:

0 nhận xét:

Đăng nhận xét