帝国CMS模板大全
www.admin99.cn
www.92cms.cn 帝国CMS模板下载站!,情怀,养站,二次开发!源码需求比较大的一站式会员下载,价更省!!!

PHP货币换算程序代码 - php类库

PHP货币换算程序代码

<?php 
  
/*  
* File: CurrencyConverter.php  
* Author: Simon Jarvis  
* Copyright: 2005 Simon Jarvis  
* Date: 10/12/05  
* Link: http://www.white-hat-web-design.co.uk/articles/php-currency-conversion.php  
   
*  
* This program is free software; you can redistribute it and/or  
* modify it under the terms of the GNU General Public License  
* as published by the Free Software Foundation; either version 2  
* of the License, or (at your option) any later version.  
*  
* This program is distributed in the hope that it will be useful,  
* but WITHOUT ANY WARRANTY; without even the implied warranty of  
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
* GNU General Public License for more details:  
* http://www.gnu.org/licenses/gpl.html  
*  
*/  
  
class  CurrencyConverter { 
  
    var   $xml_file  =  "www.ecb.int/stats/eurofxref/eurofxref-daily.xml" ; 
    var   $mysql_host ,  $mysql_user ,  $mysql_pass ,  $mysql_db ,  $mysql_table ; 
    var   $exchange_rates  =  array (); 
  
    //Load Currency Rates  
  
    function  CurrencyConverter( $host , $user , $pass , $db , $tb ) { 
  
       $this ->mysql_host =  $host ; 
       $this ->mysql_user =  $user ; 
       $this ->mysql_pass =  $pass ; 
       $this ->mysql_db =  $db ; 
       $this ->mysql_table =  $tb ; 
  
       $this ->checkLastUpdated(); 
  
       $conn  = mysql_connect( $this ->mysql_host, $this ->mysql_user, $this ->mysql_pass); 
  
       $rs  = mysql_select_db( $this ->mysql_db, $conn ); 
  
       $sql  =  "SELECT * FROM " . $this ->mysql_table; 
  
       $rs  =  mysql_query( $sql , $conn ); 
  
       while ( $row  = mysql_fetch_array( $rs )) { 
  
          $this ->exchange_rates[ $row [ 'currency' ]] =  $row [ 'rate' ]; 
      } 
  
   } 
  
    /* Perform the actual conversion, defaults to £1.00 GBP to USD */  
    function  convert( $amount =1, $from = "GBP" , $to = "USD" , $decimals =2) { 
  
       return (number_format(( $amount / $this ->exchange_rates[ $from ])* $this ->exchange_rates[ $to ], $decimals )); 
   } 
  
    /* Check to see how long since the data was last updated */  
    function  checkLastUpdated() { 
       $conn  = mysql_connect( $this ->mysql_host, $this ->mysql_user, $this ->mysql_pass); 
  
       $rs  = mysql_select_db( $this ->mysql_db, $conn ); 
  
       $sql  =  "SHOW TABLE STATUS FROM " . $this ->mysql_db. " LIKE '" . $this ->mysql_table. "'" ; 
  
       $rs  =  mysql_query( $sql , $conn ); 
  
       if (mysql_num_rows( $rs ) == 0 ) { 
  
          $this ->createTable(); 
      }  else  { 
          $row  = mysql_fetch_array( $rs ); 
          if (time() > ( strtotime ( $row [ "Update_time" ])+(12*60*60)) ) { 
  
             $this ->downloadExchangeRates(); 
         } 
      } 
   } 
  
    /* Download xml file, extract exchange rates and store values in database */  
  
    function  downloadExchangeRates() { 
       $currency_domain  =  substr ( $this ->xml_file,0, strpos ( $this ->xml_file, "/" )); 
       $currency_file  =  substr ( $this ->xml_file, strpos ( $this ->xml_file, "/" )); 
       $fp  = @ fsockopen ( $currency_domain , 80,  $errno ,  $errstr , 10); 
       if ( $fp ) { 
  
          $out  =  "GET " . $currency_file . " HTTP/1.1rn" ; 
          $out  .=  "Host: " . $currency_domain . "rn" ; 
          $out  .=  "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5rn" ; 
          $out  .=  "Connection: Closernrn" ; 
         fwrite( $fp ,  $out ); 
          while  (! feof ( $fp )) { 
  
             $buffer  .=  fgets ( $fp , 128); 
         } 
         fclose( $fp ); 
  
          $pattern  =  "{<Cubes*currency='(w*)'s*rate='([d.]*)'/>}is" ; 
         preg_match_all( $pattern , $buffer , $xml_rates ); 
          array_shift ( $xml_rates ); 
  
          for ( $i =0; $i < count ( $xml_rates [0]); $i ++) { 
  
             $exchange_rate [ $xml_rates [0][ $i ]] =  $xml_rates [1][ $i ]; 
         } 
  
          $conn  = mysql_connect( $this ->mysql_host, $this ->mysql_user, $this ->mysql_pass); 
  
          $rs  = mysql_select_db( $this ->mysql_db, $conn ); 
  
          foreach ( $exchange_rate   as   $currency => $rate ) { 
  
             if (( is_numeric ( $rate )) && ( $rate  != 0)) { 
  
                $sql  =  "SELECT * FROM " . $this ->mysql_table. " WHERE currency='" . $currency . "'" ; 
                $rs  =  mysql_query( $sql , $conn )  or   die (mysql_error()); 
                if (mysql_num_rows( $rs ) > 0) { 
  
                   $sql  =  "UPDATE " . $this ->mysql_table. " SET rate=" . $rate . " WHERE currency='" . $currency . "'" ; 
               }  else  { 
  
                   $sql  =  "INSERT INTO " . $this ->mysql_table. " VALUES('" . $currency . "'," . $rate . ")" ; 
               } 
  
                $rs  =  mysql_query( $sql , $conn )  or   die (mysql_error()); 
            } 
  
         } 
      } 
   } 
  
    /* Create the currency exchange table */  
    function  createTable() { 
  
       $conn  = mysql_connect( $this ->mysql_host, $this ->mysql_user, $this ->mysql_pass); 
  
       $rs  = mysql_select_db( $this ->mysql_db, $conn ); 
  
       $sql  =  "CREATE TABLE " . $this ->mysql_table. " ( currency char(3) NOT NULL default '', rate float NOT NULL default '0', PRIMARY KEY(currency) ) ENGINE=MyISAM" ; 
  
       $rs  =  mysql_query( $sql , $conn )  or   die (mysql_error()); 
  
       $sql  =  "INSERT INTO " . $this ->mysql_table. " VALUES('EUR',1)" ; 
  
       $rs  =  mysql_query( $sql , $conn )  or   die (mysql_error()); 
  
       $this ->downloadExchangeRates(); 
   } 
  

  
?> 

 

上面的代码复制到一个新文件并将其保存为CurrencyConverter.php。当你需要转换包含类文件,称为[转换]功能。你需要输入自己的mysql数据库变量如登录详细信息。下面的例子将£2.50英镑转换成美元(美元)。

<?php 
    include ( 'CurrencyConverter.php' ); 
    $x  =  new  CurrencyConverter( 'your_host' , 'your_username' , 'your_password' , 'your_database_name' , 'your_table_name' ); 
    echo   $x ->convert(2.50, 'GBP' , 'USD' ); 
?>

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP货币换算程序代码 - php类库》
文章链接:https://www.admin99.cn/8215
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
QQ站长交流群:953950264

登录

找回密码

注册