ホームページ  >  記事  >  バックエンド開発  >  PHP で通貨変換を実装する方法、PHP で通貨変換を実装する方法_PHP チュートリアル

PHP で通貨変換を実装する方法、PHP で通貨変換を実装する方法_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:12:461667ブラウズ

PHPは通貨変換メソッドを実装し、PHPは通貨変換を実装します

この記事の例では、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 一般公衆利用許諾書:
* http://www.gnu.org/licenses/gpl.html
*
*/
クラス 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();
   //通貨レートを読み込みます
   関数 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'];
      }
   }
   /* 実際の換算を実行します。デフォルトは £1.00 GBP から USD です */
   関数 Convert($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 = "SHOW TABLE STATUS FROM ".$this->mysql_db." LIKE '".$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 .= "接続: 閉じるrnrn";
         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 = "UPDATE ".$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 デフォルト ''、レート float NOT NULL デフォルト '0'、主キー(通貨) ) 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 として保存されます。これは、「変換」機能と呼ばれる、タイプのファイルを変換する必要がある場合に使用されます。 2.50英镑転成美元(美元)。
复制代码代码如下:
   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');
?>

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/919619.html技術記事 PHP で通貨変換を実装する方法、PHP で通貨変換を実装する方法 この記事では、PHP で通貨変換を実装する方法について説明します。参考のためにみんなで共有してください。 具体的な実装コードは次のとおりです: コードをコピーします...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:phpのfgetcsv()関数の使用例、phpfgetcsv_PHPチュートリアル次の記事:phpのfgetcsv()関数の使用例、phpfgetcsv_PHPチュートリアル

関連記事

続きを見る