> 백엔드 개발 > PHP 튜토리얼 > PHP_php 기술로 통화 변환을 구현하는 방법

PHP_php 기술로 통화 변환을 구현하는 방법

WBOY
풀어 주다: 2016-05-16 20:29:42
원래의
1680명이 탐색했습니다.

이 기사의 예에서는 PHP의 통화 변환 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요.

구체적인 구현 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
/*
* 파일:CurrencyConverter.php
* 저자: 사이먼 자비스
* 저작권 : 2005 사이먼 자비스
* 날짜: 2005년 10월 12일
* 링크: http://www.white-hat-web-design.co.uk/articles/php-currency-conversion.php
*
* 이 프로그램은 무료 소프트웨어입니다. 재배포하거나
* GNU General Public License의 조건에 따라 수정하세요
* 자유 소프트웨어 재단(Free Software Foundation)에서 발행한 내용; 버전 2
* 라이센스 또는 (귀하의 선택에 따라) 이후 버전.
*
* 본 프로그램은 유용하게 활용되길 바라는 마음으로 배포됩니다,
* 그러나 어떠한 보증도 제공되지 않습니다.
의 묵시적인 보증도 없이 * 특정 목적에 대한 상품성 또는 적합성.
보기 * 자세한 내용은 GNU 일반 공중 라이선스(GNU General Public License)를 참조하세요.
* http://www.gnu.org/licenses/gpl.html
*
*/
클래스 통화 변환기 {
   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();
   //환율 로드
   함수 통화 변환기($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'];
      }
   }
   /* 실제 변환을 수행합니다. 기본값은 £1.00 GBP를 USD로 */
   함수 변환($amount=1,$from="GBP",$to="USD",$decimals=2) {
      return(number_format(($amount/$this->exchange_rates[$from])*$this->exchange_rates[$to],$decimals));
   }
   /* 데이터가 마지막으로 업데이트된 지 얼마나 되었는지 확인 */
   함수 checkLastUpdated() {
      $conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass);
      $rs = mysql_select_db($this->mysql_db,$conn);
      $sql = "".$this->mysql_db."에서 테이블 상태를 표시합니다. '".$this->mysql_table."'";
      $rs =  mysql_query($sql,$conn);
      if(mysql_num_rows($rs) == 0 ) {
         $this->createTable();
      } 다른 {
         $row = mysql_fetch_array($rs);
         if(time() > (strtotime($row["Update_time"]) (12*60*60)) ) {
            $this->downloadExchangeRates();
         }
      }
   }
   /* XML 파일 다운로드, 환율 추출 및 데이터베이스에 값 저장 */
   함수 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 .= "호스트: ".$currency_domain."rn";
         $out .= "사용자 에이전트: Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5rn";
         $out .= "연결: 닫기";
         fwrite($fp, $out);
         while (!feof($fp)) {
            $buffer .= fgets($fp, 128);
         }
         fclose($fp);
         $pattern = "{          preg_match_all($pattern,$buffer,$xml_rates);
         array_shift($xml_rates);
         for($i=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."'";
               $rs =  mysql_query($sql,$conn) 또는 die(mysql_error());
               if(mysql_num_rows($rs) > 0) {
                  $sql = "업데이트 ".$this->mysql_table." SET rate=".$rate." WHERE 통화='".$currency."'";
               } 다른 {
                  $sql = "INSERT INTO ".$this->mysql_table." VALUES('".$currency."',".$rate.")";
               }
               $rs =  mysql_query($sql,$conn) 또는 die(mysql_error());
            }
         }
      }
   }
   /* 환율 테이블 생성 */
   함수 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." ( 통화 char(3) NOT NULL 기본값 '', rate float NOT NULL 기본값 '0', PRIMARY KEY(currency) ) ENGINE=MyISAM";
      $rs =  mysql_query($sql,$conn) 또는 die(mysql_error());
      $sql = "INSERT INTO ".$this->mysql_table." VALUES('EUR',1)";
      $rs =  mysql_query($sql,$conn) 또는 die(mysql_error());
      $this->downloadExchangeRates();
   }
}
?>

상단의 현대적인 제조는CurrencyConverter.php입니다.己的mysql数据库变weight如登录详细信息。下면적例子将£ 2.50英镑转换成美元(미국원)。
复제대码 代码如下:
   include('CurrencyConverter.php');
   $x = new MoneyConverter('your_host','your_username','your_password','your_database_name','your_table_name');
   echo $x->convert(2.50,'GBP','USD');
?>

希望本文所述对大家程序设计有所帮助。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿