function
number2Chinese(
$num
,
$m
= 1)
{
switch
(
$m
) {
case
0:
$CNum
=
array
(
array
('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'),
array
('','拾','佰','仟'),
array
('','萬','億','萬億')
);
break
;
default
:
$CNum
=
array
(
array
('零','一','二','三','四','五','六','七','八','九'),
array
('','十','百','千'),
array
('','万','亿','万亿')
);
break
;
}
if
(
is_integer
(
$num
)) {
$int
= (string)
$num
;
}
else
if
(
is_numeric
(
$num
)) {
$num
=
explode
('.', (string)
floatval
(
$num
));
$int
=
$num
[0];
$fl
= isset(
$num
[1]) ?
$num
[1] : FALSE;
}
$len
=
strlen
(
$int
);
$chinese
=
array
();
$str
=
strrev
(
$int
);
for
(
$i
= 0;
$i
<
$len
;
$i
+=4 ) {
$s
=
array
(0=>
$str
[
$i
], 1=>
$str
[
$i
+1], 2=>
$str
[
$i
+2], 3=>
$str
[
$i
+3]);
$j
= '';
if
(
$s
[3] !== '') {
$s
[3] = (int)
$s
[3];
if
(
$s
[3] !== 0) {
$j
.=
$CNum
[0][
$s
[3]].
$CNum
[1][3];
}
else
{
if
(
$s
[2] != 0 ||
$s
[1] != 0 ||
$s
[0]!=0) {
$j
.=
$CNum
[0][0];
}
}
}
if
(
$s
[2] !== '') {
$s
[2] = (int)
$s
[2];
if
(
$s
[2] !== 0) {
$j
.=
$CNum
[0][
$s
[2]].
$CNum
[1][2];
}
else
{
if
(
$s
[3]!=0 && (
$s
[1] != 0 ||
$s
[0]!=0) ) {
$j
.=
$CNum
[0][0];
}
}
}
if
(
$s
[1] !== '') {
$s
[1] = (int)
$s
[1];
if
(
$s
[1] !== 0) {
$j
.=
$CNum
[0][
$s
[1]].
$CNum
[1][1];
}
else
{
if
(
$s
[0]!=0 &&
$s
[2] != 0) {
$j
.=
$CNum
[0][
$s
[1]];
}
}
}
if
(
$s
[0] !== '') {
$s
[0] = (int)
$s
[0];
if
(
$s
[0] !== 0) {
$j
.=
$CNum
[0][
$s
[0]].
$CNum
[1][0];
}
else
{
}
}
$j
.=
$CNum
[2][
$i
/4];
array_unshift
(
$chinese
,
$j
);
}
$chs
= implode('',
$chinese
);
if
(
$fl
) {
$chs
.= '点';
for
(
$i
=0,
$j
=
strlen
(
$fl
);
$i
<
$j
;
$i
++) {
$t
= (int)
$fl
[
$i
];
$chs
.=
$str
[0][
$t
];
}
}
return
$chs
;
}