숫자를 한자로 변환하려면
제가 직접 썼어요
- 함수2중국어($num, $m = 1) {
- 스위치($m) {
- 사례 0:
- $CNum = 배열(
- array('제로','1','2','3','4','5','lu','qi','8','jiu'),
- array('' ,'shi','hundred','仟'),
- array('','million','billion','trillion')
- );
- break;
- 기본값:
- $CNum = array(
- array('제로','1','2','3','4','5','6','7','8',' 9 '),
- array('','ten','hundred','thousand'),
- array('','ten 천','billion','trillion')
- ) ;
- break;
- }
-
- // $cNum = array('zero','one','two',' three','four','five','six' , '7','8','9');
-
- if (is_integer($num)) {
- $int = (string)$num;
- } else if (is_numeric( $ num)) {
- $num = 폭발('.', (string)floatval($num));
- $int = $num[0];
- $fl = isset($num[ 1 ]) ? $num[1] : FALSE;
- }
-
- // 길이
- $len = strlen($int);
-
- // 중국어
- $ 중국어 = array();
-
- // 역수
- $str = strrev($int);
-
- for($i = 0; $i<$len; $ i =4 ) {
- $s = 배열(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 . [0][$s[1]].$CNum[1][1];
- } else {
- if ($s[0]!=0 && $s[2] != 0) {
- $j .= $CNum[0][$s[1]];
- }
- }
- }
- // 1자리
- if ($s[ 0] ! == '') {
- $s[0] = (int) $s[0];
- if ($s[0] !== 0) {
- $j .= $CNum[ 0][$s[0]].$CNum[1][0];
- } else {
-
- // $j .= $CNum[0][0];
-
- }
- }
-
- $j.=$CNum[2][$i/4];
- array_unshift($chinese, $j);
- }
-
- $chs = implode('', $chinese);
-
- if ($fl) {
- $chs .= 'point';
- for($i=0,$ j=strlen ($fl); $i<$j; $i ) {
- $t = (int)$fl[$i];
- $chs.= $str[0][$t] ;
- }
- }
-
- return $chs;
- }
코드 복사
- 함수2중국어($num, $m = 1) {
- 스위치($m) {
- 사례 0:
- $CNum = 배열(
- array('제로','1','2','3','4','5','lu','qi','8','jiu'),
- array('' ,'shi','hundred','仟'),
- array('','million','billion','trillion')
- );
- break;
- 기본값:
- $CNum = array(
- array('제로','1','2','3','4','5','6','7','8',' 9 '),
- array('','ten','hundred','thousand'),
- array('','ten 천','billion','trillion')
- ) ;
- break;
- }
-
- // $cNum = array('zero','one','two',' three','four','five','six' , '7','8','9');
-
- if (is_integer($num)) {
- $int = (string)$num;
- } else if (is_numeric( $ num)) {
- $num = 폭발('.', (string)floatval($num));
- $int = $num[0];
- $fl = isset($num[ 1 ]) ? $num[1] : FALSE;
- }
-
- // 길이
- $len = strlen($int);
-
- // 중국어
- $ 중국어 = array();
-
- // 역수
- $str = strrev($int);
-
- for($i = 0; $i<$len; $ i =4 ) {
- $s = 배열(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 . [0][$s[1]].$CNum[1][1];
- } else {
- if ($s[0]!=0 && $s[2] != 0) {
- $j .= $CNum[0][$s[1]];
- }
- }
- }
- // 1자리
- if ($s[ 0] ! == '') {
- $s[0] = (int) $s[0];
- if ($s[0] !== 0) {
- $j .= $CNum[ 0][$s[0]].$CNum[1][0];
- } else {
-
- // $j .= $CNum[0][0];
-
- }
- }
-
- $j.=$CNum[2][$i/4];
- array_unshift($chinese, $j);
- }
-
- $chs = implode('', $chinese);
-
- if ($fl) {
- $chs .= 'point';
- for($i=0,$ j=strlen ($fl); $i<$j; $i ) {
- $t = (int)$fl[$i];
- $chs.= $str[0][$t] ;
- }
- }
-
- return $chs;
- }
코드 복사
|