ホームページ  >  記事  >  バックエンド開発  >  PHPは中国語から数字への変換を実現します。実装方法は非常にスマートでPHPです

PHPは中国語から数字への変換を実現します。実装方法は非常にスマートでPHPです

WBOY
WBOYオリジナル
2016-06-23 13:16:26694ブラウズ

補助関数を共有し、php を使用して文字列内の数値を可能な限り識別すると、次のような効果が得られます。

注意事項

  1. 小数はサポートされません

  2. PHP_INT_MAXより大きい数値はサポートされません

部分的な実装コード

1

2

3

4

5

6

7

8

9

echo checkNatInt('960万'); //通常の漢数字、 9600000

echo checkNatInt( '百七百四' ); //漢数字大文字 170000840

echo checkNatInt( 'PHPをしっかり学んで年収100万を手に入れよう' ); /文中の数字、1000000

echo checkNatInt('今年の春節旅行ラッシュは26億人に達しました') //数字と漢字が混在しています、2600000000

echo checkNatInt('Two little bee'); /話し言葉 数値、2

echo checkNatInt( 'Never Expected' ) // レトロな表現、100000000

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

関数 checkNatInt( $ str ) {

$map = array (

'一' => '1' , '二' => '2' , '三' => '3' , '四' => '4 '、'5' => '6'、'8' => '9' '、

5'、&gt '' =>ゼロ' => '2' => ' ' ' ワンワン' => '10億' ,

); $str = str_replace ( $map ), array_values ( $map ), $str );

$str = checkString( $str , ' /([d百万千百十]+)/u' );

$func_c2i = 関数( $str , $plus = false) use (& $func_c2i ) {

if (false === $plus ) {

$plus = 配列 ('百' => 100000000, '万' => 10000, '千' => 1000, '百' => 100, '十' => 10,);

}

$ i ++; );

if ( $l == 0) $l = 1;

$l * $ v + $r を返す ; unc_c2i ($str);

}

//uct からphp WeChat 開発フレームワークの checkString 関数は次のとおりです

function checkString( $var , $check = '' , $default = '' ) {

if (! is_string ( $var )) {

if ( is_numeric ( $var )) {

}

}

if ( $check ) {

, return (preg_match( $check , $var , $ret ) ? $ret [1] : $default );

return $var

}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。