Spaces:
Sleeping
Sleeping
File size: 4,919 Bytes
07c3cdd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | <?php
//
// +----------------------------------------------------------------------+
// | PHP version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2003 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Piotr Klaban <makler@man.torun.pl> |
// +----------------------------------------------------------------------+
//
// $Id: Words.php,v 1.7 2003/09/29 12:23:58 makler Exp $
//
/**
* The Numbers_Words class provides method to convert arabic numerals to
* words (also with currency name).
*
* @author Piotr Klaban <makler@man.torun.pl>
* @package Numbers_Words
*/
// {{{ Numbers_Words
/**
* The Numbers_Words class provides method to convert arabic numerals to words.
*
* @access public
* @author Piotr Klaban <makler@man.torun.pl>
* @since PHP 4.2.3
* @package Numbers_Words
*/
class Numbers_Words
{
// {{{ toWords()
/**
* Converts a number to its word representation
*
* @param integer $num An integer between -infinity and infinity inclusive :)
* that should be converted to a words representation
*
* @param string $locale Language name abbreviation. Optional. Defaults to en_US.
*
* @return string The corresponding word representation
*
* @access public
* @author Piotr Klaban <makler@man.torun.pl>
* @since PHP 4.2.3
*/
function toWords($num, $locale = 'en_US') {
include_once("Numbers/Words/lang.${locale}.php");
$classname = "Numbers_Words_${locale}";
if (!class_exists($classname)) {
return Numbers_Words::raiseError("Unable to include the Numbers/Words/lang.${locale}.php file");
}
$methods = get_class_methods($classname);
if (!in_array('toWords', $methods) && !in_array('towords', $methods)) {
return Numbers_Words::raiseError("Unable to find toWords method in '$classname' class");
}
@$obj =& new $classname;
return trim($obj->toWords($num));
}
// }}}
// {{{ toCurrency()
/**
* Converts a currency value to word representation (1.02 => one dollar two cents)
* If the number has not any fraction part, the "cents" number is omitted.
*
* @param float $num A float/integer number representing currency value
*
* @param string $locale Language name abbreviation. Optional. Defaults to en_US.
*
* @param string $int_curr International currency symbol
* as defined by the ISO 4217 standard (three characters).
* E.g. 'EUR', 'USD', 'PLN'. Optional.
* Defaults to $def_currency defined in the language class.
*
* @return string The corresponding word representation
*
* @access public
* @author Piotr Klaban <makler@man.torun.pl>
* @since PHP 4.2.3
*/
function toCurrency($num, $locale = 'en_US', $int_curr = '') {
$ret = $num;
@include_once("Numbers/Words/lang.${locale}.php");
$classname = "Numbers_Words_${locale}";
if (!class_exists($classname)) {
return Numbers_Words::raiseError("Unable to include the Numbers/Words/lang.${locale}.php file");
}
$methods = get_class_methods($classname);
if (!in_array('toCurrencyWords', $methods) && !in_array('tocurrencywords', $methods)) {
return Numbers_Words::raiseError("Unable to find toCurrencyWords method in '$classname' class");
}
@$obj =& new $classname;
if (strpos($num, '.') === false)
{
$ret = trim($obj->toCurrencyWords($int_curr, $num));
} else {
$currency = explode('.', $num, 2);
$ret = trim($obj->toCurrencyWords($int_curr, $currency[0], $currency[1]));
}
return $ret;
}
// }}}
// {{{ raiseError()
/**
* Trigger a PEAR error
*
* To improve performances, the PEAR.php file is included dynamically.
*
* @param string error message
*/
function raiseError($msg)
{
include_once('PEAR.php');
return PEAR::raiseError($msg);
}
// }}}
}
// }}}
?>
|