一款实用的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(); } } ?>
Copy the above code into a new file and save it as CurrencyConverter.php. Whenever you need to make a conversion just include the class file and call the ‘convert’ function. You will need to enter your own mysql database variables such as the login details. The example below will convert £2.50 GBP into US Dollars ($).
<?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'); ?>
教程链接:
随意转载~但请保留教程地址★
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前ByDDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前ByDDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前ByDDD
<🎜>:死铁路 - 如何完成所有挑战
4 周前ByDDD
Atomfall指南:项目位置,任务指南和技巧
4 周前ByDDD

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)