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(); } } ?>
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'); ?>
教程链接:
随意转载~但请保留教程地址★

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









jquery で select 要素を非表示にする方法: 1. hide() メソッド。jQuery ライブラリを HTML ページに導入します。さまざまなセレクターを使用して select 要素を非表示にできます。ID セレクターは、selectId を選択した select 要素の ID に置き換えます。実際に使用する; 2. css() メソッド、ID セレクターを使用して非表示にする必要がある select 要素を選択し、css() メソッドを使用して表示属性を none に設定し、selectId を select 要素の ID に置き換えます。

golang を使用した SelectChannelsGo 同時プログラミングの非同期処理方法 はじめに: 同時プログラミングは、アプリケーションのパフォーマンスと応答性を効果的に向上させることができる、現代のソフトウェア開発における重要な領域です。 Go 言語では、Channel と Select ステートメントを使用して同時プログラミングを簡単かつ効率的に実装できます。この記事では、SelectChannelsGo 同時プログラミングの非同期処理メソッドに golang を使用する方法を紹介し、具体的な方法を提供します。

jQuery は、DOM 操作、イベント処理、アニメーション効果などを簡素化するために使用できる人気のある JavaScript ライブラリです。 Web 開発では、選択した要素のイベント バインディングを変更する必要がある状況によく遭遇します。この記事では、jQuery を使用して選択要素変更イベントをバインドする方法を紹介し、具体的なコード例を示します。まず、ラベルを使用してオプションを含むドロップダウン メニューを作成する必要があります。

select を使用すると、開発者は複数のファイル バッファーを同時に待機できるため、IO 待機時間を短縮し、プロセスの IO 効率を向上させることができます。 select() 関数は、プログラムが複数のファイル記述子を監視し、監視されている 1 つ以上のファイル記述子が「準備完了」になるのを待機できるようにする IO 多重化関数です。いわゆる「準備完了」状態とは、ファイルを指します。記述子はブロックされなくなり、読み取り可能、書き込み可能、例外を含む特定の種類の IO 操作に使用できるようになりました。 select は、ヘッダー ファイル #include にあるコンピューター関数です。この関数は、ファイル記述子の変更 (読み取り、書き込み、または例外) を監視するために使用されます。 1. セレクト機能の概要 セレクト機能はIO多重化機能です。

1. SQL ステートメント内のキーワードは大文字と小文字を区別せず、SELECT は SELECT と同等、FROM は from と同等です。 2. users テーブルからすべての列を選択するには、記号 * を使用して列名を置き換えます。構文 -- これはコメントです -- FEOM で指定された [テーブル] から [すべての] データをクエリします * は [すべての列] を意味します SELECT*FROM -- 指定された [テーブル] から指定されたデータを FROM データからクエリします列名 (フィールド) SELECT 列名 FROM テーブル名 インスタンス -- 注: 複数の列を区切るには英語のカンマを使用してください。 selectusername、passwordfrom

golang による SelectChannels の実装 Go 同時プログラミングのパフォーマンスの最適化 Go 言語では、ゴルーチンとチャネルを使用して同時プログラミングを実装するのが非常に一般的です。複数のチャネルを扱う場合、通常は多重化に select ステートメントを使用します。ただし、大規模な同時実行の場合、select ステートメントを使用するとパフォーマンスが低下する可能性があります。この記事では、golang による select の実装をいくつか紹介します。

Golang を使用した信頼性と堅牢性のための SelectChannels 同時プログラミングの概要: 最新のソフトウェア開発では、同時実行性が非常に重要なトピックになっています。並行プログラミングを使用すると、プログラムの応答性が向上し、コンピューティング リソースがより効率的に利用され、大規模な並列コンピューティング タスクをより適切に処理できるようになります。 Golang は非常に強力な同時プログラミング言語であり、go コルーチンとチャネル メカニズムを通じて同時プログラミングを実装するためのシンプルかつ効果的な方法を提供します。

SelectChannelsGo 同時プログラミングに golang を使用する方法 Go 言語は同時プログラミングに非常に適した言語であり、チャネル (Channel) と Select ステートメントが同時実行を実現する 2 つの重要な要素です。この記事では、同時プログラミングに golang の SelectChannels を使用する方法を紹介し、具体的なコード例を示します。 1. チャネルの概念 チャネルはゴルーチン間の通信やデータに使用されます。
