DjHuSo
Mailzero,
  1. <?php
  2. function sanash($number) {
  3.  
  4. static $dic = array(
  5.  
  6.  
  7. 1=> 'bir',
  8. 2=> 'ikki',
  9. 3=> 'uch',
  10. 4=> 'to\'rt',
  11. 5=> 'besh',
  12. 6=> 'olti',
  13. 7=> 'yetti',
  14. 8=> 'sakkiz',
  15. 9=> 'to\'qqiz',
  16. 10=> 'o\'n',
  17. 11=> 'o\'nbir',
  18. 12=> 'o\'nikki',
  19. 13=> 'o\'nuch',
  20. 14=> 'o\'nto\'rt' ,
  21. 15=> 'o\'nbesh',
  22. 16=> 'o\'nolti',
  23. 17=> 'o\'nyetti',
  24. 18=> 'o\'nsakkiz',
  25. 19=> 'o\'nto\'qiz',
  26. 20=> 'yigirma',
  27. 30=> 'o\'ttiz',
  28. 40=> 'qirq',
  29. 50=> 'elik',
  30. 60=> 'oltmish',
  31. 70=> 'yetmish',
  32. 80=> 'sakson',
  33. 90=> 'to\'qson',
  34. 100=> 'biryuz',
  35. 200=> 'ikkiyuz',
  36. 300=> 'uchyuz',
  37. 400=> 'to\'tyuz',
  38. 500=> 'beshyuz',
  39. 600=> 'oltiyuz',
  40. 700=> 'yrttiyuz',
  41. 800=> 'sakkizyuz',
  42. 900=> 'to\'qizyuz',
  43. 1000 => 'birming',
  44. 2000 => 'ikkiming',
  45. 3000 => 'uchming',
  46. 4000 => 'to\'rtming',
  47. 5000 => 'beshming',
  48. 6000 => 'oltiming',
  49. 7000 => 'yettiming',
  50. 8000 => 'sakkizming',
  51. 9000 => 'to\'qizming',
  52. 10000 => 'o\'nming',
  53. 20000 => 'yigirmaming',
  54. 30000 => 'o\'ttizming',
  55. 40000 => 'qirqming',
  56. 50000 => 'ellikming',
  57. 60000 => 'oltmishming',
  58. 70000 => 'yetmishming',
  59. 80000 => 'saksonmingming',
  60. 90000 => 'to\'sonming'
  61. ),
  62.  
  63. );
  64.  
  65. $string = array();
  66.  
  67. $number = str_pad($number, ceil(strlen($number)/5)*5, 0, STR_PAD_LEFT);
  68.  
  69. $parts = array_reverse(str_split($number,5));
  70.  
  71. foreach($parts as $i=>$part) {
  72.  
  73. if($part>0) {
  74.  
  75. $digits = array();
  76.  
  77. if($part>99) {
  78. $digits[] = floor($part/100)*100;
  79. }
  80.  
  81. if($mod1=$part%100) {
  82. $mod2 = $part%10;
  83. $flag = $i==1 && $mod1!=11 && $mod1!=12 && $mod2<5 ? -1 : 1;
  84. if($mod1<20 || !$mod2) {
  85. $digits[] = $flag*$mod1;
  86. } else {
  87. $digits[] = floor($mod1/10)*10;
  88. $digits[] = $flag*$mod2;
  89. }
  90. }
  91.  
  92. $last = abs(end($digits));
  93.  
  94. foreach($digits as $j=>$digit) {
  95. $digits[$j] = $dic[0][$digit];
  96. }
  97.  
  98. $digits[] = $dic[1][$i][(($last%=100)>5 && $last<20) ? 2 : $dic[2][min($last%10,5)]];
  99.  
  100. array_unshift($string, join(' ', $digits));
  101. }
  102. }
  103.  
  104. return join(' ', $string);
  105. }
  106.  
  107.  
  108.  
  109.  
  110. if(isset($_POST['sanash'])){
  111. $sanoq = $_POST['sonlar'];
  112.  
  113. echo'<b>'.$sanoq.'</b> - '; echo sanash($sanoq);
  114. }
  115.  
  116.  
  117. echo'<form name="form" action="" method="POST">
  118. Sanaladigan sonni yozing:<br>
  119. <input type="number" name="sonlar" required><br>
  120. <input name="sanash" type="submit" value="Sanash">
  121. </form>';
  122. ?>
90000 gacha sanaydi lekin 12345 bunaqa ko'rinishda sanata olmadim!