<?php 
 
 
/* Возвращает соответствующую числу форму слова: 1 рубль, 2 рубля, 5 рублей */ 
function  inclineWord( $number ,  $word1 ,  $word2 ,  $word3 )  { 
 
    if  ( $number  %  100  >  10  and $number  %  100  <  20 )  { 
        $number  %=  100 ; 
    }  elseif  ( $number  >  0 )  { 
        $number  %=  10 ; 
    } 
 
    if  ( $number  ==  1 )  { 
        $word  =  $word1 ; 
    }  elseif  ( $number  >=  2  and $number  <=  4 )  { 
        $word  =  $word2 ; 
    }  elseif  ( $number  >=  5  and $number  <=  9  or $number  >  10  and $number  <  20  or $number  ==  0 )  { 
        $word  =  $word3 ; 
    } 
 
    return  $word ; 
} 
 
/*  
    Преобразует числа от 0 до 999 в текст. Параметр $isFemale равен нулю,  
    если мы считаем число для мужского рода (один рубль),  
    и 1 — для женского (одна тысяча). Параметр $lengthOfNumber передает 
    полный размер внешнего числа и помогает обработать число ноль. 
*/ 
function  smallNumberToText( $number ,  $isFemale ,  $lengthOfNumber )  { 
 
        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   =>   'девятнадцать'     
    ) ; 
 
    if  ( $isFemale )  { 
            1    =>   'одна' ,   
            2    =>   'две' 
        ) ; 
        $spelling  =  array_replace( $spelling ,  $femaleSpelling ) ; 
    } 
 
 
    if  ( $lengthOfNumber  ==  0  or $number  >=  1  and $number  <=  19 )  { 
 
        $words [ ]  =  $spelling [ $number ] ; 
 
    }  elseif  ( $number  >=  10  and $number  <=  99 )  { 
 
        if  ( $number  %  10  !=  0 )  { 
            $words [ ]  =  $spelling [ $number  %  10 ] ; 
        } 
        $number  =  floor ( $number  /  10 ) ;          $words [ ]  =  $spelling [ $number  *  10 ] ; 
 
    }  elseif  ( $number  >=  100  and $number  <=  999 )  { 
 
        if  ( $number  %  100  !=  0 )  { 
 
            if  ( $number  %  100  >  10  and $number  %  100  <  20 )  { 
 
                $words [ ]  =  $spelling [ $number  %  100 ] ; 
                $number  =  floor ( $number  /  100 ) ;   
            }  else  { 
 
                if  ( $number  %  10  !=  0 )  { 
                    $words [ ]  =  $spelling [ $number  %  10 ] ; 
                } 
                $number  =  floor ( $number  /  10 ) ;                  if  ( $number  %  10  !=  0 )  { 
                    $words [ ]  =  $spelling [ $number  %  10  *  10 ] ; 
                } 
                $number  =  floor ( $number  /  10 ) ;   
            } 
 
        }  else  { 
            $number  =  floor ( $number  /  100 ) ;          } 
        $words [ ]  =  $spelling [ $number  *  100 ] ; 
 
    } 
 
 
    return  $text ; 
} 
 
function  numberToText( $number )  { 
 
    $divisibleNumber  =  $number ; 
 
        0  =>  array ( 0  =>  'рубль' ,  1  =>  'рубля' ,  2  =>  'рублей' ) ,          1  =>  array ( 0  =>  'тысяча' ,  1  =>  'тысячи' ,  2  =>  'тысяч' ) ,          2  =>  array ( 0  =>  'миллион' ,  1  =>  'миллиона' ,  2  =>  'миллионов' )      ) ; 
 
    $lengthOfNumber  =  ( $number  ==  0 )  ? 
0  :  floor ( log10 ( $number )  +  1 ) ;   
    for  ( $x  =  0 ;  $x  <  ceil ( $lengthOfNumber  /  3 )  or 
$x  ==  0 ;  $x ++ )  {   
        $numbers [ ]  =  $divisibleNumber  %  1000 ; 
        $divisibleNumber  =  floor ( $divisibleNumber  /  1000 ) ;   
        $isFemale  =  ( $x  ==  1  and $numbers [ 1 ]  %  10  ==  1  or $x  ==  1  and $numbers [ 1 ]  %  10  ==  2 )  ? 1  :  0 ; 
 
        $numberToText  =  smallNumberToText( $numbers [ $x ] ,  $isFemale ,  $lengthOfNumber ) ; 
        $inclinedWord  =  inclineWord( $numbers [ $x ] ,  $spelling [ $x ] [ 0 ] ,  $spelling [ $x ] [ 1 ] ,  $spelling [ $x ] [ 2 ] ) ; 
 
        if  ( $x  ==  0 )  { 
            if  ( $numberToText )  { 
                $text  =  $numberToText ; 
            } 
                $text  =  $text . ' ' . "($number )" . ' ' . $inclinedWord ; 
            }  else  { 
                $text  =  "($number )" . ' ' . $inclinedWord ; 
            } 
        }  else  { 
            if  ( $numberToText )  { 
                $text  =  $numberToText . ' ' . $inclinedWord . ' ' . $text ; 
            } 
        } 
    } 
 
    return  $text ; 
} 
 
/* Вызовем функцию несколько раз */ 
 
$text1  =  numberToText( $amount1 ) ; 
 
echo  "На вашем счету: {$text1} \n " ; 
 
$text2  =  numberToText( $amount2 ) ; 
 
echo  "На вашем счету: {$text2} \n " ; 
 
$text3  =  numberToText( $amount3 ) ; 
 
echo  "На вашем счету: {$text3} \n " ; 
 
$text4  =  numberToText( $amount4 ) ; 
 
echo  "На вашем счету: {$text4} \n " ; 
 
$text5  =  numberToText( $amount5 ) ; 
 
echo  "На вашем счету: {$text5} \n " ; 
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgovKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidGD0Y4g0YfQuNGB0LvRgyDRhNC+0YDQvNGDINGB0LvQvtCy0LA6IDEg0YDRg9Cx0LvRjCwgMiDRgNGD0LHQu9GPLCA1INGA0YPQsdC70LXQuSAqLwpmdW5jdGlvbiBpbmNsaW5lV29yZCgkbnVtYmVyLCAkd29yZDEsICR3b3JkMiwgJHdvcmQzKSB7CgogICAgaWYgKCRudW1iZXIgJSAxMDAgPiAxMCBhbmQgJG51bWJlciAlIDEwMCA8IDIwKSB7CiAgICAgICAgJG51bWJlciAlPSAxMDA7CiAgICB9IGVsc2VpZiAoJG51bWJlciA+IDApIHsKICAgICAgICAkbnVtYmVyICU9IDEwOwogICAgfQoKICAgIGlmICgkbnVtYmVyID09IDEpIHsKICAgICAgICAkd29yZCA9ICR3b3JkMTsKICAgIH0gZWxzZWlmICgkbnVtYmVyID49IDIgYW5kICRudW1iZXIgPD0gNCkgewogICAgICAgICR3b3JkID0gJHdvcmQyOwogICAgfSBlbHNlaWYgKCRudW1iZXIgPj0gNSBhbmQgJG51bWJlciA8PSA5IG9yICRudW1iZXIgPiAxMCBhbmQgJG51bWJlciA8IDIwIG9yICRudW1iZXIgPT0gMCkgewogICAgICAgICR3b3JkID0gJHdvcmQzOwogICAgfQoKICAgIHJldHVybiAkd29yZDsKfQoKLyogCiAgICDQn9GA0LXQvtCx0YDQsNC30YPQtdGCINGH0LjRgdC70LAg0L7RgiAwINC00L4gOTk5INCyINGC0LXQutGB0YIuINCf0LDRgNCw0LzQtdGC0YAgJGlzRmVtYWxlINGA0LDQstC10L0g0L3Rg9C70Y4sIAogICAg0LXRgdC70Lgg0LzRiyDRgdGH0LjRgtCw0LXQvCDRh9C40YHQu9C+INC00LvRjyDQvNGD0LbRgdC60L7Qs9C+INGA0L7QtNCwICjQvtC00LjQvSDRgNGD0LHQu9GMKSwgCiAgICDQuCAxIOKAlCDQtNC70Y8g0LbQtdC90YHQutC+0LPQviAo0L7QtNC90LAg0YLRi9GB0Y/Rh9CwKS4g0J/QsNGA0LDQvNC10YLRgCAkbGVuZ3RoT2ZOdW1iZXIg0L/QtdGA0LXQtNCw0LXRggogICAg0L/QvtC70L3Ri9C5INGA0LDQt9C80LXRgCDQstC90LXRiNC90LXQs9C+INGH0LjRgdC70LAg0Lgg0L/QvtC80L7Qs9Cw0LXRgiDQvtCx0YDQsNCx0L7RgtCw0YLRjCDRh9C40YHQu9C+INC90L7Qu9GMLgoqLwpmdW5jdGlvbiBzbWFsbE51bWJlclRvVGV4dCgkbnVtYmVyLCAkaXNGZW1hbGUsICRsZW5ndGhPZk51bWJlcikgewoKICAgICRzcGVsbGluZyA9IGFycmF5KAogICAgICAgIDAgICA9PiAgJ9C90L7Qu9GMJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAgID0+ICAn0LTQtdGB0Y/RgtGMJywgICAgICAgMTAwID0+ICAn0YHRgtC+JywKICAgICAgICAxICAgPT4gICfQvtC00LjQvScsICAgICAgICAgMTEgID0+ICAn0L7QtNC40L3QvdCw0LTRhtCw0YLRjCcsICAgICAgMjAgID0+ICAn0LTQstCw0LTRhtCw0YLRjCcsICAgICAyMDAgPT4gICfQtNCy0LXRgdGC0LgnLAogICAgICAgIDIgICA9PiAgJ9C00LLQsCcsICAgICAgICAgIDEyICA9PiAgJ9C00LLQtdC90LDQtNGG0LDRgtGMJywgICAgICAgMzAgID0+ICAn0YLRgNC40LTRhtCw0YLRjCcsICAgICAzMDAgPT4gICfRgtGA0LjRgdGC0LAnLAogICAgICAgIDMgICA9PiAgJ9GC0YDQuCcsICAgICAgICAgIDEzICA9PiAgJ9GC0YDQuNC90LDQtNGG0LDRgtGMJywgICAgICAgNDAgID0+ICAn0YHQvtGA0L7QuicsICAgICAgICA0MDAgPT4gICfRh9C10YLRi9GA0LXRgdGC0LAnLAogICAgICAgIDQgICA9PiAgJ9GH0LXRgtGL0YDQtScsICAgICAgIDE0ICA9PiAgJ9GH0LXRgtGL0YDQvdCw0LTRhtCw0YLRjCcsICAgICA1MCAgPT4gICfQv9GP0YLRjNC00LXRgdGP0YInLCAgICA1MDAgPT4gICfQv9GP0YLRjNGB0L7RgicsCiAgICAgICAgNSAgID0+ICAn0L/Rj9GC0YwnLCAgICAgICAgIDE1ICA9PiAgJ9C/0Y/RgtC90LDQtNGG0LDRgtGMJywgICAgICAgNjAgID0+ICAn0YjQtdGB0YLRjNC00LXRgdGP0YInLCAgIDYwMCA9PiAgJ9GI0LXRgdGC0YzRgdC+0YInLAogICAgICAgIDYgICA9PiAgJ9GI0LXRgdGC0YwnLCAgICAgICAgMTYgID0+ICAn0YjQtdGB0YLQvdCw0LTRhtCw0YLRjCcsICAgICAgNzAgID0+ICAn0YHQtdC80YzQtNC10YHRj9GCJywgICAgNzAwID0+ICAn0YHQtdC80YzRgdC+0YInLCAgICAKICAgICAgICA3ICAgPT4gICfRgdC10LzRjCcsICAgICAgICAgMTcgID0+ICAn0YHQtdC80L3QsNC00YbQsNGC0YwnLCAgICAgICA4MCAgPT4gICfQstC+0YHQtdC80YzQtNC10YHRj9GCJywgICA4MDAgPT4gICfQstC+0YHQtdC80YzRgdC+0YInLAogICAgICAgIDggICA9PiAgJ9Cy0L7RgdC10LzRjCcsICAgICAgIDE4ICA9PiAgJ9Cy0L7RgdC10LzQvdCw0LTRhtCw0YLRjCcsICAgICA5MCAgPT4gICfQtNC10LLRj9C90L7RgdGC0L4nLCAgICAgOTAwID0+ICAn0LTQtdCy0Y/RgtGM0YHQvtGCJywKICAgICAgICA5ICAgPT4gICfQtNC10LLRj9GC0YwnLCAgICAgICAxOSAgPT4gICfQtNC10LLRj9GC0L3QsNC00YbQsNGC0YwnICAgIAogICAgKTsKCiAgICBpZiAoJGlzRmVtYWxlKSB7CiAgICAgICAgJGZlbWFsZVNwZWxsaW5nID0gYXJyYXkoCiAgICAgICAgICAgIDEgICA9PiAgJ9C+0LTQvdCwJywgIAogICAgICAgICAgICAyICAgPT4gICfQtNCy0LUnCiAgICAgICAgKTsKICAgICAgICAkc3BlbGxpbmcgPSBhcnJheV9yZXBsYWNlKCRzcGVsbGluZywgJGZlbWFsZVNwZWxsaW5nKTsKICAgIH0KCiAgICAkd29yZHMgPSBhcnJheSgpOwogICAgCiAgICBpZiAoJGxlbmd0aE9mTnVtYmVyID09IDAgb3IgJG51bWJlciA+PSAxIGFuZCAkbnVtYmVyIDw9IDE5KSB7CiAgICAgICAgCiAgICAgICAgJHdvcmRzW10gPSAkc3BlbGxpbmdbJG51bWJlcl07CiAgICAKICAgIH0gZWxzZWlmICgkbnVtYmVyID49IDEwIGFuZCAkbnVtYmVyIDw9IDk5KSB7CiAgICAgICAgCiAgICAgICAgaWYgKCRudW1iZXIgJSAxMCAhPSAwKSB7CiAgICAgICAgICAgICR3b3Jkc1tdID0gJHNwZWxsaW5nWyRudW1iZXIgJSAxMF07CiAgICAgICAgfQogICAgICAgICRudW1iZXIgPSBmbG9vcigkbnVtYmVyIC8gMTApOwogICAgICAgICR3b3Jkc1tdID0gJHNwZWxsaW5nWyRudW1iZXIgKiAxMF07CiAgICAgICAgICAgIAogICAgfSBlbHNlaWYgKCRudW1iZXIgPj0gMTAwIGFuZCAkbnVtYmVyIDw9IDk5OSkgewogICAgICAgIAogICAgICAgIGlmICgkbnVtYmVyICUgMTAwICE9IDApIHsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICgkbnVtYmVyICUgMTAwID4gMTAgYW5kICRudW1iZXIgJSAxMDAgPCAyMCkgewogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAkd29yZHNbXSA9ICRzcGVsbGluZ1skbnVtYmVyICUgMTAwXTsKICAgICAgICAgICAgICAgICRudW1iZXIgPSBmbG9vcigkbnVtYmVyIC8gMTAwKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAoJG51bWJlciAlIDEwICE9IDApIHsKICAgICAgICAgICAgICAgICAgICAkd29yZHNbXSA9ICRzcGVsbGluZ1skbnVtYmVyICUgMTBdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJG51bWJlciA9IGZsb29yKCRudW1iZXIgLyAxMCk7CiAgICAgICAgICAgICAgICBpZiAoJG51bWJlciAlIDEwICE9IDApIHsKICAgICAgICAgICAgICAgICAgICAkd29yZHNbXSA9ICRzcGVsbGluZ1skbnVtYmVyICUgMTAgKiAxMF07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkbnVtYmVyID0gZmxvb3IoJG51bWJlciAvIDEwKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRudW1iZXIgPSBmbG9vcigkbnVtYmVyIC8gMTAwKTsKICAgICAgICB9CiAgICAgICAgJHdvcmRzW10gPSAkc3BlbGxpbmdbJG51bWJlciAqIDEwMF07CiAgICAgICAgCiAgICB9CgogICAgJHRleHQgPSBpbXBsb2RlKCcgJywgYXJyYXlfcmV2ZXJzZSgkd29yZHMpKTsKCiAgICByZXR1cm4gJHRleHQ7Cn0KCmZ1bmN0aW9uIG51bWJlclRvVGV4dCgkbnVtYmVyKSB7CgogICAgJGRpdmlzaWJsZU51bWJlciA9ICRudW1iZXI7CgogICAgJHNwZWxsaW5nID0gYXJyYXkoCiAgICAgICAgMCA9PiBhcnJheSgwID0+ICfRgNGD0LHQu9GMJywgMSA9PiAn0YDRg9Cx0LvRjycsIDIgPT4gJ9GA0YPQsdC70LXQuScpLAogICAgICAgIDEgPT4gYXJyYXkoMCA9PiAn0YLRi9GB0Y/Rh9CwJywgMSA9PiAn0YLRi9GB0Y/Rh9C4JywgMiA9PiAn0YLRi9GB0Y/RhycpLAogICAgICAgIDIgPT4gYXJyYXkoMCA9PiAn0LzQuNC70LvQuNC+0L0nLCAxID0+ICfQvNC40LvQu9C40L7QvdCwJywgMiA9PiAn0LzQuNC70LvQuNC+0L3QvtCyJykKICAgICk7CiAgICAKICAgICRsZW5ndGhPZk51bWJlciA9ICgkbnVtYmVyID09IDApID8gMCA6IGZsb29yKGxvZzEwKCRudW1iZXIpICsgMSk7CgogICAgZm9yICgkeCA9IDA7ICR4IDwgY2VpbCgkbGVuZ3RoT2ZOdW1iZXIgLyAzKSBvciAkeCA9PSAwOyAkeCsrKSB7CgogICAgICAgICRudW1iZXJzW10gPSAkZGl2aXNpYmxlTnVtYmVyICUgMTAwMDsKICAgICAgICAkZGl2aXNpYmxlTnVtYmVyID0gZmxvb3IoJGRpdmlzaWJsZU51bWJlciAvIDEwMDApOwoKICAgICAgICAkaXNGZW1hbGUgPSAoJHggPT0gMSBhbmQgJG51bWJlcnNbMV0gJSAxMCA9PSAxIG9yICR4ID09IDEgYW5kICRudW1iZXJzWzFdICUgMTAgPT0gMikgPyAxIDogMDsKCiAgICAgICAgJG51bWJlclRvVGV4dCA9IHNtYWxsTnVtYmVyVG9UZXh0KCRudW1iZXJzWyR4XSwgJGlzRmVtYWxlLCAkbGVuZ3RoT2ZOdW1iZXIpOwogICAgICAgICRpbmNsaW5lZFdvcmQgPSBpbmNsaW5lV29yZCgkbnVtYmVyc1skeF0sICRzcGVsbGluZ1skeF1bMF0sICRzcGVsbGluZ1skeF1bMV0sICRzcGVsbGluZ1skeF1bMl0pOwoKICAgICAgICBpZiAoJHggPT0gMCkgewogICAgICAgICAgICBpZiAoJG51bWJlclRvVGV4dCkgewogICAgICAgICAgICAgICAgJHRleHQgPSAkbnVtYmVyVG9UZXh0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc3NldCgkdGV4dCkpIHsKICAgICAgICAgICAgICAgICR0ZXh0ID0gJHRleHQuJyAnLiIoJG51bWJlcikiLicgJy4kaW5jbGluZWRXb3JkOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRleHQgPSAiKCRudW1iZXIpIi4nICcuJGluY2xpbmVkV29yZDsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICgkbnVtYmVyVG9UZXh0KSB7CiAgICAgICAgICAgICAgICAkdGV4dCA9ICRudW1iZXJUb1RleHQuJyAnLiRpbmNsaW5lZFdvcmQuJyAnLiR0ZXh0OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkdGV4dDsKfQoKLyog0JLRi9C30L7QstC10Lwg0YTRg9C90LrRhtC40Y4g0L3QtdGB0LrQvtC70YzQutC+INGA0LDQtyAqLwoKJGFtb3VudDEgPSBtdF9yYW5kKDEsOTk5OTk5OTkpOwokdGV4dDEgPSBudW1iZXJUb1RleHQoJGFtb3VudDEpOwogCmVjaG8gItCd0LAg0LLQsNGI0LXQvCDRgdGH0LXRgtGDOiB7JHRleHQxfVxuIjsKIAokYW1vdW50MiA9IG10X3JhbmQoMSw5OTk5OTk5OSk7CiR0ZXh0MiA9IG51bWJlclRvVGV4dCgkYW1vdW50Mik7CiAKZWNobyAi0J3QsCDQstCw0YjQtdC8INGB0YfQtdGC0YM6IHskdGV4dDJ9XG4iOwogCiRhbW91bnQzID0gbXRfcmFuZCgxLDk5OTk5OTk5KTsKJHRleHQzID0gbnVtYmVyVG9UZXh0KCRhbW91bnQzKTsKIAplY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgzogeyR0ZXh0M31cbiI7CiAKJGFtb3VudDQgPSBtdF9yYW5kKDEsOTk5OTk5OTkpOwokdGV4dDQgPSBudW1iZXJUb1RleHQoJGFtb3VudDQpOwogCmVjaG8gItCd0LAg0LLQsNGI0LXQvCDRgdGH0LXRgtGDOiB7JHRleHQ0fVxuIjsKCiRhbW91bnQ1ID0gbXRfcmFuZCgxLDk5OTk5OTk5KTsKJHRleHQ1ID0gbnVtYmVyVG9UZXh0KCRhbW91bnQ1KTsKIAplY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgzogeyR0ZXh0NX1cbiI7