<?php
function spellSmallNumber( $number , $isFemale )
{
0 => 'ноль' , 1 => 'один' , 2 => 'два' ,
3 => 'три' , 4 => 'четыре' , 5 => 'пять' ,
6 => 'шесть' , 7 => 'семь' , 8 => 'восемь' ,
9 => 'девять' , 10 => 'десять' , 11 => 'одиннадцать' ,
12 => 'двенадцать' , 13 => 'тринадцать' , 14 => 'четырнадцать' ,
15 => 'пятнадцать' , 16 => 'шестнадцать' , 17 => 'семнадцать' ,
18 => 'восемнадцать' , 19 => 'девятнадцать' , 20 => 'двадцать' ,
30 => 'тридцать' , 40 => 'сорок' , 50 => 'пятьдесят' ,
60 => 'шестьдесят' , 70 => 'семьдесят' , 80 => 'восемьдесят' ,
90 => 'девяносто' , 100 => 'сто' , 200 => 'двести' ,
300 => 'триста' , 400 => 'четыреста' , 500 => 'пятьсот' ,
600 => 'шестьсот' , 700 => 'семьсот' , 800 => 'восемьсот' ,
900 => 'девятсот'
) ;
1 => 'одна' , 2 => 'две'
) ;
if ( $number == 0 ) {
$result [ ] = $spelling [ $number ] ;
}
$hundreds = floor ( $number / 100 ) * 100 ; if ( $hundreds != 0 ) {
$result [ ] = $spelling [ $hundreds ] ;
}
$lastTwoDigit = $number % 100 ;
if ( ( $lastTwoDigit >= 11 && $lastTwoDigit <= 20 ) || ( ( $lastTwoDigit % 10 == 0 ) && $lastTwoDigit != 0 ) ) {
$result [ ] = $spelling [ $lastTwoDigit ] ;
} else {
$tens = floor ( $lastTwoDigit / 10 ) * 10 ;
if ( $tens != 0 ) {
$result [ ] = $spelling [ $tens ] ;
}
$units = $lastTwoDigit % 10 ;
if ( $units != 0 ) {
if ( $isFemale && ( $units == 1 || $units == 2 ) ) {
$result [ ] = $femaleSpelling [ $units ] ;
} else {
$result [ ] = $spelling [ $units ] ;
}
}
}
return $text ;
}
function inclineWord( $number , $word1 , $word2 , $word5 )
{
$lastTwoDigit = $number % 100 ;
if ( $lastTwoDigit >= 11 && $lastTwoDigit <= 14 ) {
return $word5 ;
} elseif ( $lastTwoDigit % 10 == 1 ) {
return $word1 ;
} elseif ( $lastTwoDigit % 10 >= 2 && $lastTwoDigit % 10 <= 4 ) {
return $word2 ;
} else {
return $word5 ;
}
}
function numberToText( $number )
{
1 => array ( 'тысяча' , 'тысячи' , 'тысяч' ) , 2 => array ( 'миллион' , 'миллиона' , 'миллионов' ) ) ;
$workNumber = $number ;
while ( $workNumber > 999 ) {
$numberArray [ ] = $workNumber % 1000 ;
$workNumber = ( int
) floor ( $workNumber / 1000 ) ; }
$numberArray [ ] = $workNumber ;
for ( $i = count ( $numberArray ) - 1 ; $i >= 0 ; $i -- ) { if ( $i == 1 ) {
$isFemale = 1 ;
} else {
$isFemale = 0 ;
}
if ( count ( $numberArray ) > 1 && $numberArray [ $i ] == 0 ) { continue ;
}
$arrayResult [ ] = spellSmallNumber( $numberArray [ $i ] , $isFemale ) ;
$arrayResult [ ] = inclineWord( $numberArray [ $i ] , $numberClass [ $i ] [ 0 ] , $numberClass [ $i ] [ 1 ] , $numberClass [ $i ] [ 2 ] ) ;
}
$result = implode ( ' ' , $arrayResult ) . " ($number ) " . inclineWord
( $number , 'рубль' , 'рубля' , 'рублей' ) ; return $result ;
}
$result = numberToText( $number ) ;
echo "На вашем счету: $result \n " ;
$result = numberToText( $number ) ;
echo "На вашем счету: $result \n " ;
$result = numberToText( $number ) ;
echo "На вашем счету: $result \n " ;
$result = numberToText( $number ) ;
echo "На вашем счету: $result \n " ;
$result = numberToText( $number ) ;
echo "На вашем счету: $result \n " ;
PD9waHAKICAgIGVycm9yX3JlcG9ydGluZygtMSk7CgogICAgZnVuY3Rpb24gc3BlbGxTbWFsbE51bWJlcigkbnVtYmVyLCAkaXNGZW1hbGUpCiAgICB7CiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAKICAgICAgICAkc3BlbGxpbmcgPSBhcnJheSgKICAgICAgICAgICAgMCAgID0+ICfQvdC+0LvRjCcsICAgICAgICAgIDEgICA9PiAn0L7QtNC40L0nLCAgICAgICAgICAgIDIgPT4gJ9C00LLQsCcsIAogICAgICAgICAgICAzICAgPT4gJ9GC0YDQuCcsICAgICAgICAgICA0ICAgPT4gJ9GH0LXRgtGL0YDQtScsICAgICAgICAgIDUgPT4gJ9C/0Y/RgtGMJywKICAgICAgICAgICAgNiAgID0+ICfRiNC10YHRgtGMJywgICAgICAgICA3ICAgPT4gJ9GB0LXQvNGMJywgICAgICAgICAgICA4ID0+ICfQstC+0YHQtdC80YwnLAogICAgICAgICAgICA5ICAgPT4gJ9C00LXQstGP0YLRjCcsICAgICAgICAxMCAgPT4gJ9C00LXRgdGP0YLRjCcsICAgICAgICAgMTEgPT4gJ9C+0LTQuNC90L3QsNC00YbQsNGC0YwnLAogICAgICAgICAgICAxMiAgPT4gJ9C00LLQtdC90LDQtNGG0LDRgtGMJywgICAgMTMgID0+ICfRgtGA0LjQvdCw0LTRhtCw0YLRjCcsICAgICAxNCA9PiAn0YfQtdGC0YvRgNC90LDQtNGG0LDRgtGMJywKICAgICAgICAgICAgMTUgID0+ICfQv9GP0YLQvdCw0LTRhtCw0YLRjCcsICAgIDE2ICA9PiAn0YjQtdGB0YLQvdCw0LTRhtCw0YLRjCcsICAgIDE3ID0+ICfRgdC10LzQvdCw0LTRhtCw0YLRjCcsCiAgICAgICAgICAgIDE4ICA9PiAn0LLQvtGB0LXQvNC90LDQtNGG0LDRgtGMJywgIDE5ICA9PiAn0LTQtdCy0Y/RgtC90LDQtNGG0LDRgtGMJywgICAyMCA9PiAn0LTQstCw0LTRhtCw0YLRjCcsCiAgICAgICAgICAgIDMwICA9PiAn0YLRgNC40LTRhtCw0YLRjCcsICAgICAgNDAgID0+ICfRgdC+0YDQvtC6JywgICAgICAgICAgNTAgPT4gJ9C/0Y/RgtGM0LTQtdGB0Y/RgicsCiAgICAgICAgICAgIDYwICA9PiAn0YjQtdGB0YLRjNC00LXRgdGP0YInLCAgICA3MCAgPT4gJ9GB0LXQvNGM0LTQtdGB0Y/RgicsICAgICAgODAgPT4gJ9Cy0L7RgdC10LzRjNC00LXRgdGP0YInLAogICAgICAgICAgICA5MCAgPT4gJ9C00LXQstGP0L3QvtGB0YLQvicsICAgICAxMDAgPT4gJ9GB0YLQvicsICAgICAgICAgICAyMDAgPT4gJ9C00LLQtdGB0YLQuCcsCiAgICAgICAgICAgIDMwMCA9PiAn0YLRgNC40YHRgtCwJywgICAgICAgIDQwMCA9PiAn0YfQtdGC0YvRgNC10YHRgtCwJywgICAgIDUwMCA9PiAn0L/Rj9GC0YzRgdC+0YInLAogICAgICAgICAgICA2MDAgPT4gJ9GI0LXRgdGC0YzRgdC+0YInLCAgICAgIDcwMCA9PiAn0YHQtdC80YzRgdC+0YInLCAgICAgICA4MDAgPT4gJ9Cy0L7RgdC10LzRjNGB0L7RgicsCiAgICAgICAgICAgIDkwMCA9PiAn0LTQtdCy0Y/RgtGB0L7RgicKICAgICAgICApOwogICAgICAgIAogICAgICAgICRmZW1hbGVTcGVsbGluZyA9IGFycmF5KAogICAgICAgICAgICAxID0+ICfQvtC00L3QsCcsIDIgPT4gJ9C00LLQtScKICAgICAgICApOwogICAgICAgICAgICAKICAgICAgICBpZiAoJG51bWJlciA9PSAwKSB7CiAgICAgICAgICAgICRyZXN1bHRbXSA9ICRzcGVsbGluZ1skbnVtYmVyXTsKICAgICAgICB9ICAgIAogICAgICAgICAgICAKICAgICAgICAkaHVuZHJlZHMgPSBmbG9vcigkbnVtYmVyIC8gMTAwKSAqIDEwMDsKICAgICAgICBpZiAoJGh1bmRyZWRzICE9IDApIHsKICAgICAgICAgICAgJHJlc3VsdFtdID0gJHNwZWxsaW5nWyRodW5kcmVkc107CiAgICAgICAgfQogICAgICAgIAogICAgICAgICRsYXN0VHdvRGlnaXQgPSAkbnVtYmVyICUgMTAwOwogICAgICAgIGlmICgoJGxhc3RUd29EaWdpdCA+PSAxMSAmJiAkbGFzdFR3b0RpZ2l0IDw9IDIwKSB8fCAoKCRsYXN0VHdvRGlnaXQgJSAxMCA9PSAwKSAmJiAkbGFzdFR3b0RpZ2l0ICE9IDApKSB7CiAgICAgICAgICAgICRyZXN1bHRbXSA9ICRzcGVsbGluZ1skbGFzdFR3b0RpZ2l0XTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGVucyA9IGZsb29yKCRsYXN0VHdvRGlnaXQgLyAxMCkgKiAxMDsKICAgICAgICAKICAgICAgICAgICAgaWYgKCR0ZW5zICE9IDApIHsKICAgICAgICAgICAgICAgICRyZXN1bHRbXSA9ICRzcGVsbGluZ1skdGVuc107CiAgICAgICAgICAgIH0KICAgICAgICAKICAgICAgICAgICAgJHVuaXRzID0gJGxhc3RUd29EaWdpdCAlIDEwOwoKICAgICAgICAgICAgaWYgKCR1bml0cyAhPSAwKSB7CiAgICAgICAgICAgICAgICBpZiAoJGlzRmVtYWxlICYmICgkdW5pdHMgPT0gMSB8fCAkdW5pdHMgPT0gMikpIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0W10gPSAkZmVtYWxlU3BlbGxpbmdbJHVuaXRzXTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHJlc3VsdFtdID0gJHNwZWxsaW5nWyR1bml0c107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gCiAgICAgICAgfQogICAgICAgIAogICAgICAgICR0ZXh0ID0gaW1wbG9kZSgnICcsICRyZXN1bHQpOwogICAgICAgIHJldHVybiAkdGV4dDsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gaW5jbGluZVdvcmQoJG51bWJlciwgJHdvcmQxLCAkd29yZDIsICR3b3JkNSkKICAgIHsKICAgICAgICAgJGxhc3RUd29EaWdpdCA9ICRudW1iZXIgJSAxMDA7CiAgICAgICAgIAogICAgICAgIGlmICgkbGFzdFR3b0RpZ2l0ID49IDExICYmICRsYXN0VHdvRGlnaXQgPD0gMTQpIHsKICAgICAgICAgICAgcmV0dXJuICR3b3JkNTsKICAgICAgICB9IGVsc2VpZiAoJGxhc3RUd29EaWdpdCAlIDEwID09IDEpIHsKICAgICAgICAgICAgcmV0dXJuICR3b3JkMTsKICAgICAgICB9IGVsc2VpZiAoJGxhc3RUd29EaWdpdCAlIDEwID49IDIgJiYgJGxhc3RUd29EaWdpdCAlIDEwIDw9IDQpIHsKICAgICAgICAgICAgcmV0dXJuICR3b3JkMjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gJHdvcmQ1OwogICAgICAgIH0KICAgIH0KICAgIAogICAgZnVuY3Rpb24gbnVtYmVyVG9UZXh0KCRudW1iZXIpCiAgICB7CiAgICAgICAgJGFycmF5UmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAKICAgICAgICAkbnVtYmVyQ2xhc3MgPSBhcnJheSgKICAgICAgICAgICAgMCA9PiBhcnJheSgnJywgJycsICcnKSwKICAgICAgICAgICAgMSA9PiBhcnJheSgn0YLRi9GB0Y/Rh9CwJywgJ9GC0YvRgdGP0YfQuCcsICfRgtGL0YHRj9GHJyksCiAgICAgICAgICAgIDIgPT4gYXJyYXkoJ9C80LjQu9C70LjQvtC9JywgJ9C80LjQu9C70LjQvtC90LAnLCAn0LzQuNC70LvQuNC+0L3QvtCyJykKICAgICAgICApOwogICAgICAgIAogICAgICAgICR3b3JrTnVtYmVyID0gJG51bWJlcjsKICAgICAgICAkbnVtYmVyQXJyYXkgPSBhcnJheSgpOwogICAgICAgIAogICAgICAgIHdoaWxlICgkd29ya051bWJlciA+IDk5OSkgewogICAgICAgICAgICAkbnVtYmVyQXJyYXlbXSA9ICR3b3JrTnVtYmVyICUgMTAwMDsKICAgICAgICAgICAgJHdvcmtOdW1iZXIgPSAoaW50KSBmbG9vcigkd29ya051bWJlciAvIDEwMDApOyAKICAgICAgICB9CiAgICAgICAgJG51bWJlckFycmF5W10gPSAkd29ya051bWJlcjsKICAgICAgICAKICAgICAgICBmb3IgKCRpID0gIGNvdW50KCRudW1iZXJBcnJheSkgLSAxOyAkaSA+PSAwOyAkaS0tKSB7CiAgICAgICAgICAgIGlmICgkaSA9PSAxKSB7CiAgICAgICAgICAgICAgICAkaXNGZW1hbGUgPSAxOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGlzRmVtYWxlID0gMDsKICAgICAgICAgICAgfSAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoY291bnQoJG51bWJlckFycmF5KSA+IDEgJiYgJG51bWJlckFycmF5WyRpXSA9PSAwKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkYXJyYXlSZXN1bHRbXSA9IHNwZWxsU21hbGxOdW1iZXIoJG51bWJlckFycmF5WyRpXSwgJGlzRmVtYWxlKTsKICAgICAgICAgICAgJGFycmF5UmVzdWx0W10gPSBpbmNsaW5lV29yZCgkbnVtYmVyQXJyYXlbJGldLCAkbnVtYmVyQ2xhc3NbJGldWzBdLCAkbnVtYmVyQ2xhc3NbJGldWzFdLCAkbnVtYmVyQ2xhc3NbJGldWzJdKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgJHJlc3VsdCA9IGltcGxvZGUoJyAnLCAkYXJyYXlSZXN1bHQpIC4gICIgKCRudW1iZXIpICIgLiBpbmNsaW5lV29yZCgkbnVtYmVyLCAn0YDRg9Cx0LvRjCcsICfRgNGD0LHQu9GPJywgJ9GA0YPQsdC70LXQuScpOyAKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KICAgIAogICAgJG51bWJlciA9IG10X3JhbmQoMCwgOTk5OTk5OTk5KTsgICAgCiAgICAkcmVzdWx0ID0gbnVtYmVyVG9UZXh0KCRudW1iZXIpOyAgICAKICAgIGVjaG8gItCd0LAg0LLQsNGI0LXQvCDRgdGH0LXRgtGDOiAkcmVzdWx0XG4iOwogICAgCiAgICAkbnVtYmVyID0gbXRfcmFuZCgwLCA5OTk5OTk5OSk7ICAgIAogICAgJHJlc3VsdCA9IG51bWJlclRvVGV4dCgkbnVtYmVyKTsgICAgCiAgICBlY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgzogJHJlc3VsdFxuIjsKICAgIAogICAgJG51bWJlciA9IG10X3JhbmQoMCwgOTk5OTk5OSk7ICAgIAogICAgJHJlc3VsdCA9IG51bWJlclRvVGV4dCgkbnVtYmVyKTsgICAgCiAgICBlY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgzogJHJlc3VsdFxuIjsKICAgIAogICAgJG51bWJlciA9IG10X3JhbmQoMCwgOTk5OTk5OSk7ICAgIAogICAgJHJlc3VsdCA9IG51bWJlclRvVGV4dCgkbnVtYmVyKTsgICAgCiAgICBlY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgzogJHJlc3VsdFxuIjsKICAgIAogICAgJG51bWJlciA9IG10X3JhbmQoMCwgOTk5OTk5KTsgICAgCiAgICAkcmVzdWx0ID0gbnVtYmVyVG9UZXh0KCRudW1iZXIpOyAgICAKICAgIGVjaG8gItCd0LAg0LLQsNGI0LXQvCDRgdGH0LXRgtGDOiAkcmVzdWx0XG4iOw==