插件80:汇率换算

<?php // Plug-in 80: Convert Currency
/*
 * 汇率换算
 * 插件说明:
 * 插件接受一个数值,把它从一种外汇换上成另一种外汇,
 * 若换算成功,则返回一个浮点数,准确到小数点的两位数,它表示个顶外汇转换新外汇后的金额。
 * 若换算失败,则返回false。
 * 它需要三个参数:
 * $amount 需要换算的金额
 * $from 源外汇的缩写
 * $to 目标外汇的缩写
 */
// This is an executable example with additional code supplied
// To obtain just the plug-ins please click on the Download link

$amount = 100;
$from   = 'USD';
$to     = 'GBP';

$result = PIPHP_ConvertCurrency(100, $from, $to);
if (!$result) echo "Conversion failed.";
else echo "$amount $from is $result $to";

function PIPHP_ConvertCurrency($amount, $from, $to)
{
   // Plug-in 80: Convert Currency
   //
   // This plug-in takes a value in one currency and converts
   // it to a value in a second currency. Upon success it
   // returns the converted value, otherwise it returns FALSE.
   // Tip: Once the $main[] array has been populated, you may
   // wish to cache the contents until the next day. This plug-in
   // requires the following arguments:
   //
   //    $amount: The amount of the first currency
   //    $from:   The first currency label
   //    $to:     The second currency label
   //
   //    The labels must be one of the following:
   //    AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EEK, EUR, GBP,
   //    HKD, HRK, HUF, IDR, INR, JPY, KRW, LTL, LVL, MXN, MYR,
   //    NOK, NZD, PHP, PLN, RON, RUB, SEK, SGD, THB, TRY, USD,
   //    ZAR

   $url   = 'http://www.ecb.europa.eu/stats/eurofxref/' .
            'eurofxref-daily.xml';
   $data  = file_get_contents($url);
   if (!strlen($data)) return FALSE;

   $ptr1  = strpos($data, '<Cube currency');
   $ptr2  = strpos($data, '</Cube>');
   $data  = substr($data, $ptr1, $ptr2 - $ptr1);
   $data  = str_replace("<Cube currency='", '', $data);
   $data  = str_replace("' rate='",        '|', $data);
   $data  = str_replace("'/>",             '@', $data);
   $data  = preg_replace("/\s/",            '', $data);
   $main  = array();
   $lines = explode('@', substr($data, 0, -1));

   foreach($lines as $line)
   {
      list($l, $r) = explode('|', $line);
      $main[$l]    = $r;
   }

   $main['EUR'] = 1;
   $from        = strtoupper($from);
   $to          = strtoupper($to);
   
   if (!isset($main[$from]) || !isset($main[$to])) return FALSE;
   return sprintf('%.02f', $amount / $main[$from] * $main[$to]);
}

?>

<option value="AED">United Arab Emirates Dirham (AED)</option> <option value="ANG">Netherlands Antillean Guilder (ANG)</option> <option value="ARS">Argentine Peso (ARS)</option> <option value="AUD">Australian Dollar (AUD)</option> <option value="BDT">Bangladeshi Taka (BDT)</option> <option value="BGN">Bulgarian Lev (BGN)</option> <option value="BHD">Bahraini Dinar (BHD)</option> <option value="BND">Brunei Dollar (BND)</option> <option value="BOB">Bolivian Boliviano (BOB)</option> <option value="BRL">Brazilian Real (BRL)</option> <option value="BWP">Botswanan Pula (BWP)</option> <option value="CAD">Canadian Dollar (CAD)</option> <option value="CHF">Swiss Franc (CHF)</option> <option value="CLP">Chilean Peso (CLP)</option> <option value="CNY">Chinese Yuan (CNY)</option> <option value="COP">Colombian Peso (COP)</option> <option value="CRC">Costa Rican Colón (CRC)</option> <option value="CZK">Czech Republic Koruna (CZK)</option> <option value="DKK">Danish Krone (DKK)</option> <option value="DOP">Dominican Peso (DOP)</option> <option value="DZD">Algerian Dinar (DZD)</option> <option value="EEK">Estonian Kroon (EEK)</option> <option value="EGP">Egyptian Pound (EGP)</option> <option value="EUR">Euro (EUR)</option> <option value="FJD">Fijian Dollar (FJD)</option> <option value="GBP">British Pound Sterling (GBP)</option> <option value="HKD">Hong Kong Dollar (HKD)</option> <option value="HNL">Honduran Lempira (HNL)</option> <option value="HRK">Croatian Kuna (HRK)</option> <option value="HUF">Hungarian Forint (HUF)</option> <option value="IDR">Indonesian Rupiah (IDR)</option> <option value="ILS">Israeli New Sheqel (ILS)</option> <option value="INR">Indian Rupee (INR)</option> <option value="JMD">Jamaican Dollar (JMD)</option> <option value="JOD">Jordanian Dinar (JOD)</option> <option value="JPY">Japanese Yen (JPY)</option> <option value="KES">Kenyan Shilling (KES)</option> <option value="KRW">South Korean Won (KRW)</option> <option value="KWD">Kuwaiti Dinar (KWD)</option> <option value="KYD">Cayman Islands Dollar (KYD)</option> <option value="KZT">Kazakhstani Tenge (KZT)</option> <option value="LBP">Lebanese Pound (LBP)</option> <option value="LKR">Sri Lankan Rupee (LKR)</option> <option value="LTL">Lithuanian Litas (LTL)</option> <option value="LVL">Latvian Lats (LVL)</option> <option value="MAD">Moroccan Dirham (MAD)</option> <option value="MDL">Moldovan Leu (MDL)</option> <option value="MKD">Macedonian Denar (MKD)</option> <option value="MUR">Mauritian Rupee (MUR)</option> <option value="MVR">Maldivian Rufiyaa (MVR)</option> <option value="MXN">Mexican Peso (MXN)</option> <option value="MYR">Malaysian Ringgit (MYR)</option> <option value="NAD">Namibian Dollar (NAD)</option> <option value="NGN">Nigerian Naira (NGN)</option> <option value="NIO">Nicaraguan Córdoba (NIO)</option> <option value="NOK">Norwegian Krone (NOK)</option> <option value="NPR">Nepalese Rupee (NPR)</option> <option value="NZD">New Zealand Dollar (NZD)</option> <option value="OMR">Omani Rial (OMR)</option> <option value="PEN">Peruvian Nuevo Sol (PEN)</option> <option value="PGK">Papua New Guinean Kina (PGK)</option> <option value="PHP">Philippine Peso (PHP)</option> <option value="PKR">Pakistani Rupee (PKR)</option> <option value="PLN">Polish Zloty (PLN)</option> <option value="PYG">Paraguayan Guarani (PYG)</option> <option value="QAR">Qatari Rial (QAR)</option> <option value="RON">Romanian Leu (RON)</option> <option value="RSD">Serbian Dinar (RSD)</option> <option value="RUB">Russian Ruble (RUB)</option> <option value="SAR">Saudi Riyal (SAR)</option> <option value="SCR">Seychellois Rupee (SCR)</option> <option value="SEK">Swedish Krona (SEK)</option> <option value="SGD">Singapore Dollar (SGD)</option> <option value="SKK">Slovak Koruna (SKK)</option> <option value="SLL">Sierra Leonean Leone (SLL)</option>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值