<?php
$spelling = [ 0 => 'ноль' , 10 => 'десять' , 100 => 'сто' ,
1 => 'один' , 11 => 'одиннадцать' , 20 => 'двадцать' , 200 => 'двести' ,
2 => 'два' , 12 => 'двенадцать' , 30 => 'тридцать' , 300 => 'триста' ,
3 => 'три' , 13 => 'тринадцать' , 40 => 'сорок' , 400 => 'четыреста' ,
4 => 'четыре' , 14 => 'четырнадцать' , 50 => 'пятьдесят' , 500 => 'пятьсот' ,
5 => 'пять' , 15 => 'пятнадцать' , 60 => 'шестьдесят' , 600 => 'шестьсот' ,
6 => 'шесть' , 16 => 'шестнадцать' , 70 => 'семьдесят' , 700 => 'семьсот' ,
7 => 'семь' , 17 => 'семнадцать' , 80 => 'восемьдесят' , 800 => 'восемьсот' ,
8 => 'восемь' , 18 => 'восемнадцать' , 90 => 'девяносто' , 900 => 'девятьсот' ,
9 => 'девять' , 19 => 'девятнадцать' ] ;
$spellingForFemaleGenus = [ 1 => 'одна' , 2 => 'две' ] ;
function n_to_groups( $n )
{
$partsArray = [ ] ;
for ( $i = $n ; $i > 0 ; ) {
$part = $i % 1000 ;
$partsArray [ ] = $part ;
}
return $partsArray ;
}
function small_number_to_text ( $n , $gen ) {
global $spelling ;
global $spellingForFemaleGenus ;
if ( $i != 0 ) {
$i = $i * 100 ;
$iSpelling = $spelling [ $i ] ;
}
else {
$iSpelling = null ;
}
if ( ( $n % 100 ) > 19 ) {
$j = 10 * ( floor ( ( $n % 100 ) / 10 ) ) ; $jSpelling = $spelling [ $j ] ;
}
elseif ( ( $n % 100 ) < 20 and ( $n % 100 ) >= 10 ) {
$j = $n % 100 ;
$jSpelling = $spelling [ $j ] ;
}
elseif ( ( $n % 100 ) < 10 ) {
$jSpelling = null ;
}
if ( $n % 100 >= 10 and $n % 100 <= 19 ) {
$k = null ;
}
else {
$k = $n % 10 ;
}
if ( $k > 0 ) {
$kSpelling = $spelling [ $k ] ;
}
if ( ( $k == 1 and $gen == 1 ) or ( $k == 2 and $gen == 1 ) ) {
$kSpelling = $spellingForFemaleGenus [ $k ] ;
}
elseif ( $k == 0 ) {
$kSpelling = null ;
}
$smallNInText = '' ;
if ( $iSpelling ) {
$smallNInText = $smallNInText . $iSpelling . ' ' ;
}
if ( $jSpelling ) {
$smallNInText = $smallNInText . $jSpelling . ' ' ;
}
if ( $kSpelling ) {
$smallNInText = $smallNInText . $kSpelling . ' ' ;
}
return $smallNInText ;
}
function word_form ( $n , $form1 , $form2 , $form3 ) {
$i = $n % 10 ;
$j = $n % 100 ;
if ( $n = false ) {
$wordForm = null ;
} elseif ( $i == 1 ) {
$wordForm = $form1 ;
} elseif ( $i >= 2 and $i <= 4 ) {
$wordForm = $form2 ;
} elseif ( $i == 0 or $i >= 5 ) {
$wordForm = $form3 ;
}
if ( $j >= 10 and $j <= 20 ) {
$wordForm = $form3 ;
}
return $wordForm ;
}
function number_to_text ( $n ) {
$partsArray = n_to_groups ( $n ) ;
if ( $partsArray [ 2 ] ) {
$millionsToText = small_number_to_text( $partsArray [ 2 ] , 0 ) . word_form( $partsArray [ 2 ] , "миллион" , "миллиона" , "миллионов" ) ;
}
elseif ( $partsArray [ 2 ] = false ) {
$millionsToText = null ;
}
if ( $partsArray [ 1 ] ) {
$thousandToText = small_number_to_text( $partsArray [ 1 ] , 1 ) . word_form( $partsArray [ 1 ] , "тысяча" , "тысячи" , "тысяч" ) ;
}
elseif ( $partsArray [ 1 ] = false ) {
$thousandToText = null ;
}
if ( $partsArray [ 0 ] ) {
$roublesToText = small_number_to_text( $partsArray [ 0 ] , 0 ) . word_form( $partsArray [ 0 ] , "рубль" , "рубля" , "рублей" ) ;
}
elseif ( $partsArray [ 0 ] = false ) {
$roublesToText = word_form( 0 , "рубль" , "рубля" , "рублей" ) ;
}
elseif ( $partsArray [ 0 ] == 0 ) {
$roublesToText = "ноль рублей" ;
}
$numberToText = '' ;
if ( $millionsToText ) {
$numberToText = $numberToText . ' ' . $millionsToText ;
}
if ( $thousandToText ) {
$numberToText = $numberToText . ' ' . $thousandToText ;
}
if ( $roublesToText ) {
$numberToText = $numberToText . ' ' . $roublesToText ;
}
return $numberToText ;
}
$test1 = number_to_text
( mt_rand ( 0 , 999999999 ) ) ; echo "На Вашем счету$test1 \n " ;
$test2 = number_to_text
( mt_rand ( 0 , 999999999 ) ) ; echo "На Вашем счету$test2 \n " ;
$test3 = number_to_text
( mt_rand ( 0 , 999999999 ) ) ; echo "На Вашем счету$test3 \n " ;
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwoKCiRzcGVsbGluZz0gWzAgICA9PiAgJ9C90L7Qu9GMJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAgID0+ICAn0LTQtdGB0Y/RgtGMJywgICAgICAgMTAwID0+ICAn0YHRgtC+JywKICAgIDEgICA9PiAgJ9C+0LTQuNC9JywgICAgICAgICAxMSAgPT4gICfQvtC00LjQvdC90LDQtNGG0LDRgtGMJywgICAgICAyMCAgPT4gICfQtNCy0LDQtNGG0LDRgtGMJywgICAgIDIwMCA9PiAgJ9C00LLQtdGB0YLQuCcsCiAgICAyICAgPT4gICfQtNCy0LAnLCAgICAgICAgICAxMiAgPT4gICfQtNCy0LXQvdCw0LTRhtCw0YLRjCcsICAgICAgIDMwICA9PiAgJ9GC0YDQuNC00YbQsNGC0YwnLCAgICAgMzAwID0+ICAn0YLRgNC40YHRgtCwJywKICAgIDMgICA9PiAgJ9GC0YDQuCcsICAgICAgICAgIDEzICA9PiAgJ9GC0YDQuNC90LDQtNGG0LDRgtGMJywgICAgICAgNDAgID0+ICAn0YHQvtGA0L7QuicsICAgICAgICA0MDAgPT4gICfRh9C10YLRi9GA0LXRgdGC0LAnLAogICAgNCAgID0+ICAn0YfQtdGC0YvRgNC1JywgICAgICAgMTQgID0+ICAn0YfQtdGC0YvRgNC90LDQtNGG0LDRgtGMJywgICAgIDUwICA9PiAgJ9C/0Y/RgtGM0LTQtdGB0Y/RgicsICAgIDUwMCA9PiAgJ9C/0Y/RgtGM0YHQvtGCJywKICAgIDUgICA9PiAgJ9C/0Y/RgtGMJywgICAgICAgICAxNSAgPT4gICfQv9GP0YLQvdCw0LTRhtCw0YLRjCcsICAgICAgIDYwICA9PiAgJ9GI0LXRgdGC0YzQtNC10YHRj9GCJywgICA2MDAgPT4gICfRiNC10YHRgtGM0YHQvtGCJywKICAgIDYgICA9PiAgJ9GI0LXRgdGC0YwnLCAgICAgICAgMTYgID0+ICAn0YjQtdGB0YLQvdCw0LTRhtCw0YLRjCcsICAgICAgNzAgID0+ICAn0YHQtdC80YzQtNC10YHRj9GCJywgICAgNzAwID0+ICAn0YHQtdC80YzRgdC+0YInLAogICAgNyAgID0+ICAn0YHQtdC80YwnLCAgICAgICAgIDE3ICA9PiAgJ9GB0LXQvNC90LDQtNGG0LDRgtGMJywgICAgICAgODAgID0+ICAn0LLQvtGB0LXQvNGM0LTQtdGB0Y/RgicsICAgODAwID0+ICAn0LLQvtGB0LXQvNGM0YHQvtGCJywKICAgIDggICA9PiAgJ9Cy0L7RgdC10LzRjCcsICAgICAgIDE4ICA9PiAgJ9Cy0L7RgdC10LzQvdCw0LTRhtCw0YLRjCcsICAgICA5MCAgPT4gICfQtNC10LLRj9C90L7RgdGC0L4nLCAgICAgOTAwID0+ICAn0LTQtdCy0Y/RgtGM0YHQvtGCJywKICAgIDkgICA9PiAgJ9C00LXQstGP0YLRjCcsICAgICAgIDE5ICA9PiAgJ9C00LXQstGP0YLQvdCw0LTRhtCw0YLRjCcgICAgXTsKJHNwZWxsaW5nRm9yRmVtYWxlR2VudXM9IFsxPT4n0L7QtNC90LAnLCAyPT4n0LTQstC1J107CgpmdW5jdGlvbiBuX3RvX2dyb3VwcygkbikKewogICAgJHBhcnRzQXJyYXkgPSBbXTsKICAgIGZvciAoJGkgPSAkbjsgJGkgPiAwOykgewogICAgICAgICRwYXJ0ID0gJGkgJSAxMDAwOwogICAgICAgICRwYXJ0c0FycmF5W10gPSAkcGFydDsKICAgICAgICAkaSA9IGZsb29yKCRpIC8gMTAwMCk7CiAgICB9CiAgICByZXR1cm4gJHBhcnRzQXJyYXk7Cn0KCmZ1bmN0aW9uIHNtYWxsX251bWJlcl90b190ZXh0ICgkbiwgJGdlbil7CiAgICBnbG9iYWwgJHNwZWxsaW5nOwogICAgZ2xvYmFsICRzcGVsbGluZ0ZvckZlbWFsZUdlbnVzOwogICAgJGk9Zmxvb3IoJG4vMTAwKTsKICAgIGlmICgkaSE9MCkgewogICAgICAgJGkgPSAkaSoxMDA7CiAgICAgICAgJGlTcGVsbGluZyA9ICRzcGVsbGluZ1skaV07CiAgICB9CiAgICAgICBlbHNlIHsKICAgICAgICAgICAgICRpU3BlbGxpbmcgPSBudWxsOwogICAgICB9CiAgICBpZiAoKCRuJTEwMCk+MTkpIHsKICAgICAgICAgJGogPSAxMCAqIChmbG9vcigoICRuJTEwMCkgLyAxMCkpOwogICAgICAgJGpTcGVsbGluZyA9ICRzcGVsbGluZ1skal07CiAgICB9CiAgICAgIGVsc2VpZiAoKCRuJTEwMCk8MjAgYW5kICgkbiUxMDApPj0xMCl7CiAgICAgICAgICAgJGogPSAkbiAlIDEwMDsKICAgICAgICAgICAkalNwZWxsaW5nID0gJHNwZWxsaW5nWyRqXTsKICAgICAgfQogICAgZWxzZWlmICgoJG4lMTAwKTwxMCl7CiAgICAgICAgICRqU3BlbGxpbmc9bnVsbDsKICAgIH0KICAgICBpZiAoJG4lMTAwPj0xMCBhbmQgJG4lMTAwPD0xOSl7CiAgICAgICAgJGs9bnVsbDsKICAgIH0KICAgICAgZWxzZSB7CiAgICAgICRrID0gJG4gJSAxMDsKICAgICB9CiAgICBpZiAoJGs+MCl7CiAgICAgICRrU3BlbGxpbmc9JHNwZWxsaW5nWyRrXTsKICAgICB9CiAgICBpZiAoKCRrPT0xIGFuZCAkZ2VuPT0xKSBvciAoJGs9PTIgYW5kICRnZW49PTEpKXsKICAgICAgICRrU3BlbGxpbmc9JHNwZWxsaW5nRm9yRmVtYWxlR2VudXNbJGtdOwogICAgfQogICAgICBlbHNlaWYgKCRrPT0wKXsKICAgICAgICRrU3BlbGxpbmc9bnVsbDsKICAgIH0KICAgICAkc21hbGxOSW5UZXh0PScnOwogICAgaWYgKCRpU3BlbGxpbmcpewogICAgICAgICRzbWFsbE5JblRleHQ9JHNtYWxsTkluVGV4dCAuICRpU3BlbGxpbmcgLiAnICc7CiAgICAgfQogICAgaWYgKCRqU3BlbGxpbmcpewogICAgICAgICRzbWFsbE5JblRleHQ9JHNtYWxsTkluVGV4dCAuICRqU3BlbGxpbmcgLiAnICc7CiAgICAgfQogICAgaWYgKCRrU3BlbGxpbmcpewogICAgICAgICRzbWFsbE5JblRleHQ9JHNtYWxsTkluVGV4dCAuICRrU3BlbGxpbmcgLiAnICc7CiAgICAgfQogICAgcmV0dXJuICRzbWFsbE5JblRleHQ7Cn0KCmZ1bmN0aW9uIHdvcmRfZm9ybSAoJG4sJGZvcm0xLCRmb3JtMiwkZm9ybTMpewogICAkaT0kbiUxMDsKICAgJGo9JG4lMTAwOwogICAgICAgICAgIGlmICgkbiA9IGZhbHNlKSB7CiAgICAgICAgICAgICAgICR3b3JkRm9ybSA9IG51bGw7CiAgICAgICAgICAgfSBlbHNlaWYgKCRpID09IDEpIHsKICAgICAgICAgICAgICAgJHdvcmRGb3JtID0gJGZvcm0xOwogICAgICAgICAgIH0gZWxzZWlmICgkaSA+PSAyIGFuZCAkaSA8PSA0KSB7CiAgICAgICAgICAgICAgICR3b3JkRm9ybSA9ICRmb3JtMjsKICAgICAgICAgICB9IGVsc2VpZiAoJGkgPT0gMCBvciAkaSA+PSA1KSB7CiAgICAgICAgICAgICAgICR3b3JkRm9ybSA9ICRmb3JtMzsKICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGlmICgkaj49MTAgYW5kICRqPD0yMCkgewogICAgICAgICAgICAgICAgICAgJHdvcmRGb3JtID0gJGZvcm0zOwogICAgICAgfQogICAgcmV0dXJuICR3b3JkRm9ybTsKfQoKZnVuY3Rpb24gbnVtYmVyX3RvX3RleHQgKCRuKXsKICAgICRwYXJ0c0FycmF5PSBuX3RvX2dyb3VwcyAoJG4pOwogICAgaWYgKCRwYXJ0c0FycmF5WzJdKSB7CiAgICAgICAgJG1pbGxpb25zVG9UZXh0ID0gc21hbGxfbnVtYmVyX3RvX3RleHQoJHBhcnRzQXJyYXlbMl0sIDApIC4gd29yZF9mb3JtKCRwYXJ0c0FycmF5WzJdLCAi0LzQuNC70LvQuNC+0L0iLCAi0LzQuNC70LvQuNC+0L3QsCIsICLQvNC40LvQu9C40L7QvdC+0LIiKTsKICAgIH0KICAgICAgICBlbHNlaWYgKCRwYXJ0c0FycmF5WzJdPWZhbHNlKXsKICAgICAgICAkbWlsbGlvbnNUb1RleHQ9bnVsbDsKICAgIH0KCiAgICBpZiAoJHBhcnRzQXJyYXlbMV0pIHsKICAgICAgICAkdGhvdXNhbmRUb1RleHQ9IHNtYWxsX251bWJlcl90b190ZXh0KCRwYXJ0c0FycmF5WzFdLCAxKSAuIHdvcmRfZm9ybSgkcGFydHNBcnJheVsxXSwgItGC0YvRgdGP0YfQsCIsItGC0YvRgdGP0YfQuCIsICLRgtGL0YHRj9GHIik7CiAgICB9CiAgICBlbHNlaWYgKCRwYXJ0c0FycmF5WzFdPWZhbHNlKXsKICAgICAgICAkdGhvdXNhbmRUb1RleHQ9bnVsbDsKICAgIH0KICAgIGlmICgkcGFydHNBcnJheVswXSkgewogICAgICAgICRyb3VibGVzVG9UZXh0PSBzbWFsbF9udW1iZXJfdG9fdGV4dCgkcGFydHNBcnJheVswXSwgMCkgLiB3b3JkX2Zvcm0oJHBhcnRzQXJyYXlbMF0sICLRgNGD0LHQu9GMIiwgItGA0YPQsdC70Y8iLCAi0YDRg9Cx0LvQtdC5Iik7CiAgICB9CiAgICBlbHNlaWYgKCRwYXJ0c0FycmF5WzBdPWZhbHNlKSB7CiAgICAgICAgJHJvdWJsZXNUb1RleHQ9IHdvcmRfZm9ybSgwLCAi0YDRg9Cx0LvRjCIsICLRgNGD0LHQu9GPIiwgItGA0YPQsdC70LXQuSIpOwogICAgfQogICAgZWxzZWlmICgkcGFydHNBcnJheVswXT09MCkgewogICAgICAgICRyb3VibGVzVG9UZXh0PSAi0L3QvtC70Ywg0YDRg9Cx0LvQtdC5IjsKICAgIH0KICAgICRudW1iZXJUb1RleHQ9ICcnOwogICAgaWYgKCRtaWxsaW9uc1RvVGV4dCl7CiAgICAgICAgJG51bWJlclRvVGV4dD0kbnVtYmVyVG9UZXh0IC4gJyAnIC4gJG1pbGxpb25zVG9UZXh0OwogICAgfQogICAgaWYgKCR0aG91c2FuZFRvVGV4dCl7CiAgICAgICAgJG51bWJlclRvVGV4dD0kbnVtYmVyVG9UZXh0IC4gJyAnIC4gJHRob3VzYW5kVG9UZXh0OwogICAgfQogICAgaWYgKCRyb3VibGVzVG9UZXh0KXsKICAgICAgICAkbnVtYmVyVG9UZXh0PSRudW1iZXJUb1RleHQgLiAnICcgLiAkcm91Ymxlc1RvVGV4dDsKICAgIH0KICAgIHJldHVybiAkbnVtYmVyVG9UZXh0Owp9CgokdGVzdDE9IG51bWJlcl90b190ZXh0KG10X3JhbmQoMCw5OTk5OTk5OTkpKTsKZWNobyAi0J3QsCDQktCw0YjQtdC8INGB0YfQtdGC0YMkdGVzdDFcbiI7CiR0ZXN0Mj0gbnVtYmVyX3RvX3RleHQobXRfcmFuZCgwLDk5OTk5OTk5OSkpOwplY2hvICLQndCwINCS0LDRiNC10Lwg0YHRh9C10YLRgyR0ZXN0MlxuIjsKJHRlc3QzPSBudW1iZXJfdG9fdGV4dChtdF9yYW5kKDAsOTk5OTk5OTk5KSk7CmVjaG8gItCd0LAg0JLQsNGI0LXQvCDRgdGH0LXRgtGDJHRlc3QzXG4iOw==