<?php
// Staring straight up into the sky ... oh my my
/* Возвращает соответствующую числу форму слова: 1 рубль, 2 рубля, 5 рублей */
function inclineWord( $number , $word ) {
if ( $word == "миллион" ) {
if ( $number % 100 != 11 and $number % 10 == 1 ) {
$word = "миллион" ;
} elseif ( $number % 100 != 12 and $number % 100 != 13 and $number % 100 != 14 and $number % 10 >= 2 and $number % 10 <= 4 ) {
$word = "миллиона" ;
} elseif ( $number % 10 >= 5 and $number % 10 <= 9 or $number % 10 == 0 or $number % 100 >= 11 and $number % 100 <= 19 ) {
$word = "миллионов" ;
}
} elseif ( $word == "тысяча" ) {
if ( $number % 100 != 11 and $number % 10 == 1 ) {
$word = "тысяча" ;
} elseif ( $number % 100 != 12 and $number % 100 != 13 and $number % 100 != 14 and $number % 10 >= 2 and $number % 10 <= 4 ) {
$word = "тысячи" ;
} elseif ( $number % 10 >= 5 and $number % 10 <= 9 or $number % 10 == 0 or $number % 100 >= 11 and $number % 100 <= 19 ) {
$word = "тысяч" ;
}
} elseif ( $word == "рубль" ) {
if ( $number % 10 == 1 ) {
$word = "рубль" ;
} elseif ( $number % 100 != 12 and $number % 100 != 13 and $number % 100 != 14 and $number % 10 >= 2 and $number % 10 <= 4 ) {
$word = "рубля" ;
} elseif ( $number % 10 >= 5 and $number % 10 <= 9 or $number % 10 == 0 or $number % 100 >= 11 and $number % 100 <= 19 ) {
$word = "рублей" ;
}
}
return $word ;
}
/*
Преобразует числа от 0 до 999 в текст. Параметр $isFemale равен нулю,
если мы считаем число для мужского рода (один рубль),
и 1 — для женского (одна тысяча)
*/
function smallNumberToText( $number , $isFemale ) {
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 => 'девятнадцать'
) ;
1 => 'одна' , 2 => 'две'
) ;
$hundreds = floor ( $number / 100 ) * 100 ; $twoLastNumber = ( $number % 100 ) ;
if ( $twoLastNumber >= 11 and $twoLastNumber <= 19 ) {
$array = [ ] ;
$array [ ] = "$hundreds " ;
$array [ ] = "$twoLastNumber " ;
$array1 = [ ] ;
foreach ( $array as $a ) {
}
} else {
$tens = floor ( $twoLastNumber / 10 ) * 10 ; $units = $twoLastNumber - $tens ;
$array = [ ] ;
$array [ ] = "$hundreds " ;
$array [ ] = "$tens " ;
$array [ ] = "$units " ;
$array1 = [ ] ;
foreach ( $array as $a ) {
}
}
if ( $isFemale == 1 ) {
}
return $result ;
}
function numberToText( $number ) {
if ( $number > 0 and $number <= 999 ) {
$thirst = $number % 1000 ;
} elseif ( $number >= 1000 and $number <= 999999 ) {
$second = floor ( $number / 1000 ) ; $thirst = $number % 1000 ;
} elseif ( $number >= 1000000 - 999999999 ) {
$first = floor ( $number / 1000000 ) ; $thirst = $number % 1000 ;
$second = floor ( $number % 1000000 - $thirst ) / 1000 ; }
if ( $second % 10 == 1 or $second % 10 == 2 ) {
$isFemale = 1 ;
} else {
$isFemale = 0 ;
}
$word1 = "миллион" ;
$word2 = "тысяча" ;
$word3 = "рубль" ;
$million = inclineWord( $first , $word1 ) ;
$thousands = inclineWord( $second , $word2 ) ;
$rouble = inclineWord( $thirst , $word3 ) ;
$millionNumber = smallNumberToText( $first , $isFemale ) ;
$thousandsNumber = smallNumberToText( $second , $isFemale ) ;
$handredsNumber = smallNumberToText( $thirst , $isFemale ) ;
$result = "$millionNumber $million , $thousandsNumber $thousands , $handredsNumber ($number ) $rouble \n " ;
return $result ;
}
/* Вызовем функцию несколько раз */
$text1 = numberToText( $amount1 ) ;
echo "На вашем счету: {$text1} \n " ;
$text2 = numberToText( $amount2 ) ;
echo "На вашем счету: {$text2} \n " ;
$text3 = numberToText( $amount3 ) ;
echo "На вашем счету: {$text3} \n " ;
$text4 = numberToText( $amount4 ) ;
echo "На вашем счету: {$text4} \n " ;
PD9waHAKIAovLyBTdGFyaW5nIHN0cmFpZ2h0IHVwIGludG8gdGhlIHNreSAuLi4gb2ggbXkgbXkKZXJyb3JfcmVwb3J0aW5nKC0xKTsKIAovKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidGD0Y4g0YfQuNGB0LvRgyDRhNC+0YDQvNGDINGB0LvQvtCy0LA6IDEg0YDRg9Cx0LvRjCwgMiDRgNGD0LHQu9GPLCA1INGA0YPQsdC70LXQuSAqLwpmdW5jdGlvbiBpbmNsaW5lV29yZCgkbnVtYmVyLCAkd29yZCkgewoJIGlmICgkd29yZCA9PSAi0LzQuNC70LvQuNC+0L0iKSB7CgkJaWYgKCRudW1iZXIgJSAxMDAgIT0gMTEgYW5kICRudW1iZXIgJSAxMCA9PSAxKSB7CgkJCSR3b3JkID0gItC80LjQu9C70LjQvtC9IjsKCQl9IGVsc2VpZiAoJG51bWJlciAlIDEwMCAhPSAxMiBhbmQgJG51bWJlciAlIDEwMCAhPSAxMyBhbmQgJG51bWJlciAlIDEwMCAhPSAxNCBhbmQgJG51bWJlciAlIDEwID49IDIgYW5kICRudW1iZXIgJSAxMCA8PSA0KSB7CgkJCSR3b3JkID0gItC80LjQu9C70LjQvtC90LAiOwoJCX0gZWxzZWlmICgkbnVtYmVyICUgMTAgPj0gNSBhbmQgJG51bWJlciAlIDEwIDw9IDkgb3IgJG51bWJlciAlIDEwID09IDAgb3IgJG51bWJlciAlIDEwMCA+PSAxMSBhbmQgJG51bWJlciAlIDEwMCA8PSAxOSkgewoJCQkkd29yZCA9ICLQvNC40LvQu9C40L7QvdC+0LIiOwoJCX0KCX0gZWxzZWlmICgkd29yZCA9PSAi0YLRi9GB0Y/Rh9CwIikgewoJCWlmICgkbnVtYmVyICUgMTAwICE9IDExIGFuZCAkbnVtYmVyICUgMTAgPT0gMSkgewoJCQkkd29yZCA9ICLRgtGL0YHRj9GH0LAiOwoJCX0gZWxzZWlmICgkbnVtYmVyICUgMTAwICE9IDEyIGFuZCAkbnVtYmVyICUgMTAwICE9IDEzIGFuZCAkbnVtYmVyICUgMTAwICE9IDE0IGFuZCAkbnVtYmVyICUgMTAgPj0gMiBhbmQgJG51bWJlciAlIDEwIDw9IDQpIHsKCQkJJHdvcmQgPSAi0YLRi9GB0Y/Rh9C4IjsKCQl9IGVsc2VpZiAoJG51bWJlciAlIDEwID49IDUgYW5kICRudW1iZXIgJSAxMCA8PSA5IG9yICRudW1iZXIgJSAxMCA9PSAwIG9yICRudW1iZXIgJSAxMDAgPj0gMTEgYW5kICRudW1iZXIgJSAxMDAgPD0gMTkpIHsKCQkJJHdvcmQgPSAi0YLRi9GB0Y/RhyI7CgkJfQoJfSBlbHNlaWYgKCR3b3JkID09ICLRgNGD0LHQu9GMIikgewoJCWlmICgkbnVtYmVyICUgMTAgPT0gMSkgewoJCQkkd29yZCA9ICLRgNGD0LHQu9GMIjsKCQl9IGVsc2VpZiAoJG51bWJlciAlIDEwMCAhPSAxMiBhbmQgJG51bWJlciAlIDEwMCAhPSAxMyBhbmQgJG51bWJlciAlIDEwMCAhPSAxNCBhbmQgJG51bWJlciAlIDEwID49IDIgYW5kICRudW1iZXIgJSAxMCA8PSA0KSB7CgkJCSR3b3JkID0gItGA0YPQsdC70Y8iOwoJCX0gZWxzZWlmICgkbnVtYmVyICUgMTAgPj0gNSBhbmQgJG51bWJlciAlIDEwIDw9IDkgb3IgJG51bWJlciAlIDEwID09IDAgb3IgJG51bWJlciAlIDEwMCA+PSAxMSBhbmQgJG51bWJlciAlIDEwMCA8PSAxOSkgewoJCQkkd29yZCA9ICLRgNGD0LHQu9C10LkiOwoJCX0KCX0KCXJldHVybiAkd29yZDsKfQogCi8qIAogICAg0J/RgNC10L7QsdGA0LDQt9GD0LXRgiDRh9C40YHQu9CwINC+0YIgMCDQtNC+IDk5OSDQsiDRgtC10LrRgdGCLiDQn9Cw0YDQsNC80LXRgtGAICRpc0ZlbWFsZSDRgNCw0LLQtdC9INC90YPQu9GOLCAKICAgINC10YHQu9C4INC80Ysg0YHRh9C40YLQsNC10Lwg0YfQuNGB0LvQviDQtNC70Y8g0LzRg9C20YHQutC+0LPQviDRgNC+0LTQsCAo0L7QtNC40L0g0YDRg9Cx0LvRjCksIAogICAg0LggMSDigJQg0LTQu9GPINC20LXQvdGB0LrQvtCz0L4gKNC+0LTQvdCwINGC0YvRgdGP0YfQsCkgCiovCmZ1bmN0aW9uIHNtYWxsTnVtYmVyVG9UZXh0KCRudW1iZXIsICRpc0ZlbWFsZSkgewogCiAgICAkc3BlbGxpbmcgPSBhcnJheSgKICAgICAgICAwICAgPT4gICcnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgPT4gICfQtNC10YHRj9GC0YwnLCAgICAgICAxMDAgPT4gICfRgdGC0L4nLAogICAgICAgIDEgICA9PiAgJ9C+0LTQuNC9JywgICAgICAgICAxMSAgPT4gICfQvtC00LjQvdC90LDQtNGG0LDRgtGMJywgICAgICAyMCAgPT4gICfQtNCy0LDQtNGG0LDRgtGMJywgICAgIDIwMCA9PiAgJ9C00LLQtdGB0YLQuCcsCiAgICAgICAgMiAgID0+ICAn0LTQstCwJywgICAgICAgICAgMTIgID0+ICAn0LTQstC10L3QsNC00YbQsNGC0YwnLCAgICAgICAzMCAgPT4gICfRgtGA0LjQtNGG0LDRgtGMJywgICAgIDMwMCA9PiAgJ9GC0YDQuNGB0YLQsCcsCiAgICAgICAgMyAgID0+ICAn0YLRgNC4JywgICAgICAgICAgMTMgID0+ICAn0YLRgNC40L3QsNC00YbQsNGC0YwnLCAgICAgICA0MCAgPT4gICfRgdC+0YDQvtC6JywgICAgICAgIDQwMCA9PiAgJ9GH0LXRgtGL0YDQtdGB0YLQsCcsCiAgICAgICAgNCAgID0+ICAn0YfQtdGC0YvRgNC1JywgICAgICAgMTQgID0+ICAn0YfQtdGC0YvRgNC90LDQtNGG0LDRgtGMJywgICAgIDUwICA9PiAgJ9C/0Y/RgtGM0LTQtdGB0Y/RgicsICAgIDUwMCA9PiAgJ9C/0Y/RgtGM0YHQvtGCJywKICAgICAgICA1ICAgPT4gICfQv9GP0YLRjCcsICAgICAgICAgMTUgID0+ICAn0L/Rj9GC0L3QsNC00YbQsNGC0YwnLCAgICAgICA2MCAgPT4gICfRiNC10YHRgtGM0LTQtdGB0Y/RgicsICAgNjAwID0+ICAn0YjQtdGB0YLRjNGB0L7RgicsCiAgICAgICAgNiAgID0+ICAn0YjQtdGB0YLRjCcsICAgICAgICAxNiAgPT4gICfRiNC10YHRgtC90LDQtNGG0LDRgtGMJywgICAgICA3MCAgPT4gICfRgdC10LzRjNC00LXRgdGP0YInLCAgICA3MDAgPT4gICfRgdC10LzRjNGB0L7RgicsICAgIAogICAgICAgIDcgICA9PiAgJ9GB0LXQvNGMJywgICAgICAgICAxNyAgPT4gICfRgdC10LzQvdCw0LTRhtCw0YLRjCcsICAgICAgIDgwICA9PiAgJ9Cy0L7RgdC10LzRjNC00LXRgdGP0YInLCAgODAwID0+ICAn0LLQvtGB0LXQvNGM0YHQvtGCJywKICAgICAgICA4ICAgPT4gICfQstC+0YHQtdC80YwnLCAgICAgICAxOCAgPT4gICfQstC+0YHQtdC80L3QsNC00YbQsNGC0YwnLCAgICAgOTAgID0+ICAn0LTQtdCy0Y/QvdC+0YHRgtC+JywgICAgOTAwID0+ICAn0LTQtdCy0Y/RgtGM0YHQvtGCJywKICAgICAgICA5ICAgPT4gICfQtNC10LLRj9GC0YwnLCAgICAgICAxOSAgPT4gICfQtNC10LLRj9GC0L3QsNC00YbQsNGC0YwnICAgIAogICAgKTsKIAogICAgJGZlbWFsZVNwZWxsaW5nID0gYXJyYXkoCiAgICAgICAgMSAgID0+ICAn0L7QtNC90LAnLCAgICAgICAgMiAgID0+ICAn0LTQstC1JwogICAgKTsKCQogCSRodW5kcmVkcyA9IGZsb29yKCRudW1iZXIgLyAxMDApICogMTAwOyAgICAgICAgICAgICAgICAgCiAgICAkdHdvTGFzdE51bWJlciA9ICgkbnVtYmVyICUgMTAwKTsgICAgICAgICAgICAgICAgICAgICAgIAoJaWYgKCR0d29MYXN0TnVtYmVyID49IDExIGFuZCAkdHdvTGFzdE51bWJlciA8PSAxOSkgeyAgICAKCQkgICAgJGFycmF5ID0gW107CiAgICAgICAgICAgICRhcnJheSBbXSA9ICIkaHVuZHJlZHMiOwogICAgICAgICAgICAkYXJyYXkgW10gPSAiJHR3b0xhc3ROdW1iZXIiOwogICAgICAgICAgICAkYXJyYXkxID0gW107CiAgICAgICAgICAgZm9yZWFjaCgkYXJyYXkgYXMgJGEpIHsKICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkYXJyYXkxLCRzcGVsbGluZ1skYV0pOwoJCSAgIH0KCX0gZWxzZSB7CgkJICAgICR0ZW5zID0gZmxvb3IoJHR3b0xhc3ROdW1iZXIgLyAxMCkgKiAxMDsKICAgICAgICAgICAgJHVuaXRzID0gJHR3b0xhc3ROdW1iZXIgLSAkdGVuczsKCQkJJGFycmF5ID0gW107CiAgICAgICAgICAgICRhcnJheSBbXSA9ICIkaHVuZHJlZHMiOwogICAgICAgICAgICAkYXJyYXkgW10gPSAiJHRlbnMiOwogICAgICAgICAgICAkYXJyYXkgW10gPSAiJHVuaXRzIjsKICAgICAgICAgICAgJGFycmF5MSA9IFtdOwogICAgICAgICAgICBmb3JlYWNoKCRhcnJheSBhcyAkYSkgewkKICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJGFycmF5MSwgJHNwZWxsaW5nWyRhXSk7CQp9Cn0KICAgaWYgKCRpc0ZlbWFsZSA9PSAxKSB7CgkgICAkYXJyYXkxID0gcHJlZ19yZXBsYWNlKCcv0L7QtNC40L0vdScsICfQvtC00L3QsCcsICRhcnJheTEpOwoJICAgJGFycmF5MSA9IHByZWdfcmVwbGFjZSgnL9C00LLQsC91JywgJ9C00LLQtScsICRhcnJheTEpOwogICB9CiAgICRyZXN1bHQgPSBpbXBsb2RlKCIgIiwgJGFycmF5MSk7ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAkcmVzdWx0ID0gdHJpbSgkcmVzdWx0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgcmV0dXJuICRyZXN1bHQ7Cn0KIApmdW5jdGlvbiBudW1iZXJUb1RleHQoJG51bWJlcikgewogIGlmICgkbnVtYmVyID4gMCBhbmQgJG51bWJlciA8PSA5OTkpIHsKCSR0aGlyc3QgPSAkbnVtYmVyICUgMTAwMDsKfSBlbHNlaWYgKCRudW1iZXIgPj0gMTAwMCBhbmQgJG51bWJlciA8PSA5OTk5OTkpIHsKCSRzZWNvbmQgPSBmbG9vcigkbnVtYmVyIC8gMTAwMCk7CiAgICAkdGhpcnN0ID0gJG51bWJlciAlIDEwMDA7Cn0gZWxzZWlmICgkbnVtYmVyID49IDEwMDAwMDAgLSA5OTk5OTk5OTkpIHsKCSRmaXJzdCA9IGZsb29yKCRudW1iZXIgLyAxMDAwMDAwKTsKICAgICR0aGlyc3QgPSAkbnVtYmVyICUgMTAwMDsKICAgICRzZWNvbmQgPSBmbG9vcigkbnVtYmVyICUgMTAwMDAwMCAtICR0aGlyc3QpIC8gMTAwMDsKfQogIGlmICgkc2Vjb25kICUgMTAgPT0gMSBvciAkc2Vjb25kICUgMTAgPT0gMikgewoJICAkaXNGZW1hbGUgPSAxOwogIH0gZWxzZSB7CgkgICRpc0ZlbWFsZSA9IDA7CiAgfQogIAogICR3b3JkMSA9ICLQvNC40LvQu9C40L7QvSI7CiAgJHdvcmQyID0gItGC0YvRgdGP0YfQsCI7CiAgJHdvcmQzID0gItGA0YPQsdC70YwiOwoKICAkbWlsbGlvbiA9IGluY2xpbmVXb3JkKCRmaXJzdCwgJHdvcmQxKTsKICAkdGhvdXNhbmRzID0gaW5jbGluZVdvcmQoJHNlY29uZCwgJHdvcmQyKTsKICAkcm91YmxlID0gaW5jbGluZVdvcmQoJHRoaXJzdCwgJHdvcmQzKTsKCiAgJG1pbGxpb25OdW1iZXIgPSBzbWFsbE51bWJlclRvVGV4dCgkZmlyc3QsICRpc0ZlbWFsZSk7CiAgJHRob3VzYW5kc051bWJlciA9IHNtYWxsTnVtYmVyVG9UZXh0KCRzZWNvbmQsICRpc0ZlbWFsZSk7CiAgJGhhbmRyZWRzTnVtYmVyID0gc21hbGxOdW1iZXJUb1RleHQoJHRoaXJzdCwgJGlzRmVtYWxlKTsKCiAgJHJlc3VsdCA9ICIkbWlsbGlvbk51bWJlciAkbWlsbGlvbiwgJHRob3VzYW5kc051bWJlciAkdGhvdXNhbmRzLCAkaGFuZHJlZHNOdW1iZXIgKCRudW1iZXIpICRyb3VibGVcbiI7CiAgJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgnL1xcc1xccy91JywgJyAnLCAkcmVzdWx0KTsKICByZXR1cm4gJHJlc3VsdDsKfQogCi8qINCS0YvQt9C+0LLQtdC8INGE0YPQvdC60YbQuNGOINC90LXRgdC60L7Qu9GM0LrQviDRgNCw0LcgKi8KJGFtb3VudDEgPSBtdF9yYW5kKDEsOTk5OTk5OTk5KTsKJHRleHQxID0gbnVtYmVyVG9UZXh0KCRhbW91bnQxKTsKIAplY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgzogeyR0ZXh0MX1cbiI7CiAKJGFtb3VudDIgPSBtdF9yYW5kKDEsOTk5OTk5OTk5KTsKJHRleHQyID0gbnVtYmVyVG9UZXh0KCRhbW91bnQyKTsKIAplY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgzogeyR0ZXh0Mn1cbiI7CiAKJGFtb3VudDMgPSBtdF9yYW5kKDEsOTk5OTk5OTk5KTsKJHRleHQzID0gbnVtYmVyVG9UZXh0KCRhbW91bnQzKTsKIAplY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgzogeyR0ZXh0M31cbiI7CiAKJGFtb3VudDQgPSBtdF9yYW5kKDEsOTk5OTk5OTk5KTsKJHRleHQ0ID0gbnVtYmVyVG9UZXh0KCRhbW91bnQ0KTsKIAplY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgzogeyR0ZXh0NH1cbiI7