ホームページ  >  記事  >  バックエンド開発  >  PHP は、漢字を整数に変換します。たとえば、101 は 101 に変換されます。

PHP は、漢字を整数に変換します。たとえば、101 は 101 に変換されます。

WBOY
WBOYオリジナル
2016-07-25 08:45:241418ブラウズ
PHP、百一に変換します
    test();
  1. /**
  2. * テスト
  3. */
  4. function test() {
  5. echo CnToInt('一'); // 1
  6. echo CnToInt('十'); // 10
  7. echo CnToInt ('イレブン'); // 11
  8. echo CnToInt('百十'); // 110
  9. echo CnToInt('千一'); // 1001
  10. echo CnToInt('百十');ゼロワン'); // 10101
  11. echo CnToInt('113003001'); // 11.0E+15
  12. }
  13. / **
  14. * 中国語から数値へ
  15. * @param String $var 解析する中国語の数値
  16. * @param Int $start 初期値
  17. * @return int
  18. */
  19. function CnToInt($var, $start = 0) {
  20. if (is_numeric($var)) {
  21. return $var;
  22. }
  23. if (intval($var) = == 0) {
  24. $splits = array('100' => 100000000, '10,000' => 10000);
  25. $chars = array('10,000' => 10000, '1000' => 1000, 'hundred' = > 100, '十' => 10, 'ゼロ' => 0);
  26. $Ints = array('ゼロ' => 0, '一' => 1 、「二」 => 2、「四」 => 5、「七」 => 7、 8' => 8, '9' => 9, '十' => 10);
  27. $var = str_replace('zero', "", $var);
  28. foreach ($splits as $key = > $step) {
  29. if (strpos($var, $key)) {
  30. $strs =explode($key, $var);
  31. $start += CnToInt(array_shift($strs)) * $step;
  32. $ var = join('', $strs);
  33. }
  34. }
  35. foreach ($chars as $key => $step) {
  36. if (strpos($var, $key) !== FALSE ) {
  37. $vs =explode($key, $var);
  38. if ($vs[0] === "") {
  39. $vs[0] = '一';
  40. }
  41. $start += $Ints [array_shift($vs )] * $step;
  42. $var = join('', $vs);
  43. } elseif (mb_strlen($var, 'utf-8') === 1) {
  44. $start += $Ints[$var ];
  45. $var = '';
  46. Break;
  47. }
  48. }
  49. return $start;
  50. } else {
  51. return intval($var);
  52. }
  53. }
コードをコピー

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