<?php 
// Staring straight up into the sky ... oh my my 
 
/* Возвращает соответствующую числу форму слова: 1 рубль, 2 рубля, 5 рублей */ 
function  inclineWord( $number ,  $word1 ,  $word2 ,  $word5 ) 
{ 
	$last2Digits  =  $number  %  100 ; 
	if  ( $last2Digits  >  19 )  {  $last2Digits  =  $last2Digits  %  10 ;  } 
	switch  ( $last2Digits )  { 
    	case  1 :   {  return  " {$word1} " ;  } 
    	case  2 :  case  3 :  case  4 :   {  return  " {$word2} " ;  } 
    	default :  {  return  " {$word5} " ;  } 
	} 
} 
 
/* 
Преобразует числа от 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  =>  'две' 
    ) ; 
 
 
    if ( $number  ==  0 ) { 
    	return  null ; 
    } 
 
    if ( $isFemale  ==  1 ) { 
    		return  $femaleSpelling [ $number ] ; 
    	} 
    } 
    else { 
    		return  $spelling [ $number ] ; 
    	} 		
    } 
 
    $last2Digits  =  $number  %  100 ; 
 
    $hundreds     =  floor ( $number  /  100 )  *  100 ;      $tens         =  floor ( $number  %  100  /  10 )  *  10 ;      $units        =  $number  %  10 ; 
 
    if  ( $hundreds  >  0 )  { 
    } 
    if ( $last2Digits  >=  11  &&  $last2Digits  <=  19 ) { 
    } 
    else { 
    	if  ( $tens  >  0 )  { 
    	} 
    	if  ( $units  >  0 )  { 
    		if ( $isFemale  ==  1 ) { 
    		} 
    		else { 
    		} 
    	} 
    } 	
} 
 
function  numberToText( $number ) 
{ 
 
	if ( $number  ==  0 ) { 
		$str  =  "ноль рублей" ; 
		return  $str ; 
	} 
 
	$hundredsDigits  =  $number  %  1000 ; 
    $thousandsDigits  =  ( floor ( $number  /  1000 ) )  %  1000 ;   
    $checkFemale  =  $thousandsDigits  %  10 ; 
 
    if ( $checkFemale  ==  1  ||  $checkFemale  ==  2  ||  $thousandsDigits  ==  1  ||  $thousandsDigits  ==  2 ) { 
    	$thousandsWords  =  smallNumberToText( $thousandsDigits ,  1 ) ; 
    } 
    else { 
    	$thousandsWords  =  smallNumberToText( $thousandsDigits ,  0 ) ; 
    } 
 
    $millionsDigits  =  ( ( floor ( $number  /  1000 ) )  /  1000 )  %  1000 ;   
    $hundredsWords  =  smallNumberToText( $hundredsDigits ,  0 ) ; 
 
    $millionsWords  =  smallNumberToText( $millionsDigits ,  0 ) ; 
 
    if ( $millionsDigits  >  0 ) { 
    	$millionsWords  .=  inclineWord( $millionsDigits ,  "миллион" ,  "миллиона" ,  "миллионов" ) ; 
    } 
    if ( $thousandsDigits  >  0 ) { 
    	$thousandsWords  .=  inclineWord( $thousandsDigits ,  "тысяча" ,  "тысячи" ,  "тысяч" ) ; 
    } 
 
    $words  =  array ( $millionsWords ,  $thousandsWords ,  $hundredsWords ) ;   
    $str  .=  inclineWord( $number ,  "рубль" ,  "рубля" ,  "рублей" ) ; 
} 
 
/* Вызовем функцию несколько раз */ 
$amount1  =  901999999 ; 
$text1    =  numberToText( $amount1 ) ; 
 
echo  "На вашем счету {$text1} \n " ; 
 
$amount2  =  0 ; 
$text2    =  numberToText( $amount2 ) ; 
 
echo  "На вашем счету {$text2} \n " ; 
 
$amount3  =  1 ; 
$text3    =  numberToText( $amount3 ) ; 
 
echo  "На вашем счету {$text3} \n " ; 
 
$amount4  =  11012013 ; 
$text4    =  numberToText( $amount4 ) ; 
 
echo  "На вашем счету {$text4} \n " ; 
 
$amount5  =  7000008 ; 
$text5    =  numberToText( $amount5 ) ; 
 
echo  "На вашем счету {$text5} \n " ; 
 
$amount6  =  1000 ; 
$text6    =  numberToText( $amount6 ) ; 
 
echo  "На вашем счету {$text6} \n " ; 
 
$amount7  =  71000 ; 
$text7    =  numberToText( $amount7 ) ; 
 
echo  "На вашем счету {$text7} \n " ; 
 
$amount8  =  101000 ; 
$text8    =  numberToText( $amount8 ) ; 
 
echo  "На вашем счету {$text8} \n " ; 
 
$amount9  =  82000 ; 
$text9    =  numberToText( $amount9 ) ; 
 
echo  "На вашем счету {$text9} \n " ; 
 
				PD9waHAKLy8gU3RhcmluZyBzdHJhaWdodCB1cCBpbnRvIHRoZSBza3kgLi4uIG9oIG15IG15CmVycm9yX3JlcG9ydGluZygtMSk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwoKLyog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnRg9GOINGH0LjRgdC70YMg0YTQvtGA0LzRgyDRgdC70L7QstCwOiAxINGA0YPQsdC70YwsIDIg0YDRg9Cx0LvRjywgNSDRgNGD0LHQu9C10LkgKi8KZnVuY3Rpb24gaW5jbGluZVdvcmQoJG51bWJlciwgJHdvcmQxLCAkd29yZDIsICR3b3JkNSkKewoJJGxhc3QyRGlnaXRzID0gJG51bWJlciAlIDEwMDsKCWlmICgkbGFzdDJEaWdpdHMgPiAxOSkgeyAkbGFzdDJEaWdpdHMgPSAkbGFzdDJEaWdpdHMgJSAxMDsgfQoJc3dpdGNoICgkbGFzdDJEaWdpdHMpIHsKICAgIAljYXNlIDE6ICB7IHJldHVybiAiIHskd29yZDF9IjsgfQogICAgCWNhc2UgMjogY2FzZSAzOiBjYXNlIDQ6ICB7IHJldHVybiAiIHskd29yZDJ9IjsgfQogICAgCWRlZmF1bHQ6IHsgcmV0dXJuICIgeyR3b3JkNX0iOyB9Cgl9Cn0KCi8qCtCf0YDQtdC+0LHRgNCw0LfRg9C10YIg0YfQuNGB0LvQsCDQvtGCIDAg0LTQviA5OTkg0LIg0YLQtdC60YHRgi4g0J/QsNGA0LDQvNC10YLRgCAkaXNGZW1hbGUg0YDQsNCy0LXQvSDQvdGD0LvRjiwgCtC10YHQu9C4INC80Ysg0YHRh9C40YLQsNC10Lwg0YfQuNGB0LvQviDQtNC70Y8g0LzRg9C20YHQutC+0LPQviDRgNC+0LTQsCAo0L7QtNC40L0g0YDRg9Cx0LvRjCksIArQuCAxIOKAlCDQtNC70Y8g0LbQtdC90YHQutC+0LPQviAo0L7QtNC90LAg0YLRi9GB0Y/Rh9CwKSAKKi8KZnVuY3Rpb24gc21hbGxOdW1iZXJUb1RleHQoJG51bWJlciwgJGlzRmVtYWxlKQp7CiAgICAKICAgICRzcGVsbGluZyA9IGFycmF5KAogICAgICAgIDAgICA9PiAgJ9C90L7Qu9GMJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAgID0+ICAn0LTQtdGB0Y/RgtGMJywgICAgICAgMTAwID0+ICAn0YHRgtC+JywKICAgICAgICAxICAgPT4gICfQvtC00LjQvScsICAgICAgICAgMTEgID0+ICAn0L7QtNC40L3QvdCw0LTRhtCw0YLRjCcsICAgICAgMjAgID0+ICAn0LTQstCw0LTRhtCw0YLRjCcsICAgICAyMDAgPT4gICfQtNCy0LXRgdGC0LgnLAogICAgICAgIDIgICA9PiAgJ9C00LLQsCcsICAgICAgICAgIDEyICA9PiAgJ9C00LLQtdC90LDQtNGG0LDRgtGMJywgICAgICAgMzAgID0+ICAn0YLRgNC40LTRhtCw0YLRjCcsICAgICAzMDAgPT4gICfRgtGA0LjRgdGC0LAnLAogICAgICAgIDMgICA9PiAgJ9GC0YDQuCcsICAgICAgICAgIDEzICA9PiAgJ9GC0YDQuNC90LDQtNGG0LDRgtGMJywgICAgICAgNDAgID0+ICAn0YHQvtGA0L7QuicsICAgICAgICA0MDAgPT4gICfRh9C10YLRi9GA0LXRgdGC0LAnLAogICAgICAgIDQgICA9PiAgJ9GH0LXRgtGL0YDQtScsICAgICAgIDE0ICA9PiAgJ9GH0LXRgtGL0YDQvdCw0LTRhtCw0YLRjCcsICAgICA1MCAgPT4gICfQv9GP0YLRjNC00LXRgdGP0YInLCAgICA1MDAgPT4gICfQv9GP0YLRjNGB0L7RgicsCiAgICAgICAgNSAgID0+ICAn0L/Rj9GC0YwnLCAgICAgICAgIDE1ICA9PiAgJ9C/0Y/RgtC90LDQtNGG0LDRgtGMJywgICAgICAgNjAgID0+ICAn0YjQtdGB0YLRjNC00LXRgdGP0YInLCAgIDYwMCA9PiAgJ9GI0LXRgdGC0YzRgdC+0YInLAogICAgICAgIDYgICA9PiAgJ9GI0LXRgdGC0YwnLCAgICAgICAgMTYgID0+ICAn0YjQtdGB0YLQvdCw0LTRhtCw0YLRjCcsICAgICAgNzAgID0+ICAn0YHQtdC80YzQtNC10YHRj9GCJywgICAgNzAwID0+ICAn0YHQtdC80YzRgdC+0YInLCAgICAKICAgICAgICA3ICAgPT4gICfRgdC10LzRjCcsICAgICAgICAgMTcgID0+ICAn0YHQtdC80L3QsNC00YbQsNGC0YwnLCAgICAgICA4MCAgPT4gICfQstC+0YHQtdC80YzQtNC10YHRj9GCJywgICA4MDAgPT4gICfQstC+0YHQtdC80YzRgdC+0YInLAogICAgICAgIDggICA9PiAgJ9Cy0L7RgdC10LzRjCcsICAgICAgIDE4ICA9PiAgJ9Cy0L7RgdC10LzQvdCw0LTRhtCw0YLRjCcsICAgICA5MCAgPT4gICfQtNC10LLRj9C90L7RgdGC0L4nLCAgICAgOTAwID0+ICAn0LTQtdCy0Y/RgtGM0YHQvtGCJywKICAgICAgICA5ICAgPT4gICfQtNC10LLRj9GC0YwnLCAgICAgICAxOSAgPT4gICfQtNC10LLRj9GC0L3QsNC00YbQsNGC0YwnICAgIAogICAgKTsKICAgIAogICAgJGZlbWFsZVNwZWxsaW5nID0gYXJyYXkoCiAgICAgICAgMSA9PiAn0L7QtNC90LAnLAogICAgICAgIDIgPT4gJ9C00LLQtScKICAgICk7CiAgICAKICAgICRzdHIgPSBhcnJheSgpOwogICAgCiAgICBpZigkbnVtYmVyID09IDApewogICAgCXJldHVybiBudWxsOwogICAgfQogICAgCiAgICBpZigkaXNGZW1hbGUgPT0gMSl7CiAgICAJaWYoYXJyYXlfa2V5X2V4aXN0cygkbnVtYmVyLCAkZmVtYWxlU3BlbGxpbmcpKXsKICAgIAkJcmV0dXJuICRmZW1hbGVTcGVsbGluZ1skbnVtYmVyXTsKICAgIAl9CiAgICB9CiAgICBlbHNlewogICAgCWlmIChhcnJheV9rZXlfZXhpc3RzKCRudW1iZXIsICRzcGVsbGluZykpIHsKICAgIAkJcmV0dXJuICRzcGVsbGluZ1skbnVtYmVyXTsKICAgIAl9CQkKICAgIH0KICAgIAogICAgJGxhc3QyRGlnaXRzID0gJG51bWJlciAlIDEwMDsKICAgIAogICAgJGh1bmRyZWRzICAgID0gZmxvb3IoJG51bWJlciAvIDEwMCkgKiAxMDA7CiAgICAkdGVucyAgICAgICAgPSBmbG9vcigkbnVtYmVyICUgMTAwIC8gMTApICogMTA7CiAgICAkdW5pdHMgICAgICAgPSAkbnVtYmVyICUgMTA7CiAgIAogICAgaWYgKCRodW5kcmVkcyA+IDApIHsKICAgICAgCWFycmF5X3B1c2goJHN0ciwgJHNwZWxsaW5nWyRodW5kcmVkc10pOwogICAgfQogICAgaWYoJGxhc3QyRGlnaXRzID49IDExICYmICRsYXN0MkRpZ2l0cyA8PSAxOSl7CiAgICAJYXJyYXlfcHVzaCgkc3RyLCAkc3BlbGxpbmdbJGxhc3QyRGlnaXRzXSk7CiAgICB9CiAgICBlbHNlewogICAgCWlmICgkdGVucyA+IDApIHsKICAgICAgCQlhcnJheV9wdXNoKCRzdHIsICRzcGVsbGluZ1skdGVuc10pOwogICAgCX0KICAgIAlpZiAoJHVuaXRzID4gMCkgewogICAgCQlpZigkaXNGZW1hbGUgPT0gMSl7CiAgICAJCQlhcnJheV9wdXNoKCRzdHIsICRmZW1hbGVTcGVsbGluZ1skdW5pdHNdKTsJCQkKICAgIAkJfQogICAgCQllbHNlewogICAgCQkJYXJyYXlfcHVzaCgkc3RyLCAkc3BlbGxpbmdbJHVuaXRzXSk7CQkKICAgIAkJfQogICAgCX0KICAgIH0JCiAgICAkc3RyID0gaW1wbG9kZSgkc3RyLCAiICIpOwogICAgcmV0dXJuIHRyaW0oJHN0cik7Cn0KCmZ1bmN0aW9uIG51bWJlclRvVGV4dCgkbnVtYmVyKQp7CgkKCWlmKCRudW1iZXIgPT0gMCl7CgkJJHN0ciA9ICLQvdC+0LvRjCDRgNGD0LHQu9C10LkiOwoJCXJldHVybiAkc3RyOwoJfQoJCgkkaHVuZHJlZHNEaWdpdHMgPSAkbnVtYmVyICUgMTAwMDsKICAgICR0aG91c2FuZHNEaWdpdHMgPSAoZmxvb3IoJG51bWJlciAvIDEwMDApKSAlIDEwMDA7CiAgICAKICAgICRjaGVja0ZlbWFsZSA9ICR0aG91c2FuZHNEaWdpdHMgJSAxMDsKICAgIAogICAgaWYoJGNoZWNrRmVtYWxlID09IDEgfHwgJGNoZWNrRmVtYWxlID09IDIgfHwgJHRob3VzYW5kc0RpZ2l0cyA9PSAxIHx8ICR0aG91c2FuZHNEaWdpdHMgPT0gMil7CiAgICAJJHRob3VzYW5kc1dvcmRzID0gc21hbGxOdW1iZXJUb1RleHQoJHRob3VzYW5kc0RpZ2l0cywgMSk7CiAgICB9CiAgICBlbHNlewogICAgCSR0aG91c2FuZHNXb3JkcyA9IHNtYWxsTnVtYmVyVG9UZXh0KCR0aG91c2FuZHNEaWdpdHMsIDApOwogICAgfQogICAgCiAgICAkbWlsbGlvbnNEaWdpdHMgPSAoKGZsb29yKCRudW1iZXIgLyAxMDAwKSkgLyAxMDAwKSAlIDEwMDA7CiAgICAKICAgICRodW5kcmVkc1dvcmRzID0gc21hbGxOdW1iZXJUb1RleHQoJGh1bmRyZWRzRGlnaXRzLCAwKTsKICAgIAogICAgJG1pbGxpb25zV29yZHMgPSBzbWFsbE51bWJlclRvVGV4dCgkbWlsbGlvbnNEaWdpdHMsIDApOwogICAgCiAgICBpZigkbWlsbGlvbnNEaWdpdHMgPiAwKXsKICAgIAkkbWlsbGlvbnNXb3JkcyAuPSBpbmNsaW5lV29yZCgkbWlsbGlvbnNEaWdpdHMsICLQvNC40LvQu9C40L7QvSIsICLQvNC40LvQu9C40L7QvdCwIiwgItC80LjQu9C70LjQvtC90L7QsiIpOwogICAgfQogICAgaWYoJHRob3VzYW5kc0RpZ2l0cyA+IDApewogICAgCSR0aG91c2FuZHNXb3JkcyAuPSBpbmNsaW5lV29yZCgkdGhvdXNhbmRzRGlnaXRzLCAi0YLRi9GB0Y/Rh9CwIiwgItGC0YvRgdGP0YfQuCIsICLRgtGL0YHRj9GHIik7CiAgICB9CiAgICAKICAgICR3b3JkcyA9IGFycmF5KCRtaWxsaW9uc1dvcmRzLCAkdGhvdXNhbmRzV29yZHMsICRodW5kcmVkc1dvcmRzKTsKICAgICR3b3JkcyA9IGFycmF5X2ZpbHRlcigkd29yZHMpOwogICAKICAgICRzdHIgPSBpbXBsb2RlKCR3b3JkcywgIiAiKTsKICAgICRzdHIgLj0gaW5jbGluZVdvcmQoJG51bWJlciwgItGA0YPQsdC70YwiLCAi0YDRg9Cx0LvRjyIsICLRgNGD0LHQu9C10LkiKTsKICAgIHJldHVybiB0cmltKCRzdHIpOwp9CgovKiDQktGL0LfQvtCy0LXQvCDRhNGD0L3QutGG0LjRjiDQvdC10YHQutC+0LvRjNC60L4g0YDQsNC3ICovCiRhbW91bnQxID0gOTAxOTk5OTk5OwokdGV4dDEgICA9IG51bWJlclRvVGV4dCgkYW1vdW50MSk7CgplY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgyB7JHRleHQxfVxuIjsKCiRhbW91bnQyID0gMDsKJHRleHQyICAgPSBudW1iZXJUb1RleHQoJGFtb3VudDIpOwoKZWNobyAi0J3QsCDQstCw0YjQtdC8INGB0YfQtdGC0YMgeyR0ZXh0Mn1cbiI7CgokYW1vdW50MyA9IDE7CiR0ZXh0MyAgID0gbnVtYmVyVG9UZXh0KCRhbW91bnQzKTsKCmVjaG8gItCd0LAg0LLQsNGI0LXQvCDRgdGH0LXRgtGDIHskdGV4dDN9XG4iOwoKJGFtb3VudDQgPSAxMTAxMjAxMzsKJHRleHQ0ICAgPSBudW1iZXJUb1RleHQoJGFtb3VudDQpOwoKZWNobyAi0J3QsCDQstCw0YjQtdC8INGB0YfQtdGC0YMgeyR0ZXh0NH1cbiI7CgokYW1vdW50NSA9IDcwMDAwMDg7CiR0ZXh0NSAgID0gbnVtYmVyVG9UZXh0KCRhbW91bnQ1KTsKCmVjaG8gItCd0LAg0LLQsNGI0LXQvCDRgdGH0LXRgtGDIHskdGV4dDV9XG4iOwoKJGFtb3VudDYgPSAxMDAwOwokdGV4dDYgICA9IG51bWJlclRvVGV4dCgkYW1vdW50Nik7CgplY2hvICLQndCwINCy0LDRiNC10Lwg0YHRh9C10YLRgyB7JHRleHQ2fVxuIjsKCiRhbW91bnQ3ID0gNzEwMDA7CiR0ZXh0NyAgID0gbnVtYmVyVG9UZXh0KCRhbW91bnQ3KTsKCmVjaG8gItCd0LAg0LLQsNGI0LXQvCDRgdGH0LXRgtGDIHskdGV4dDd9XG4iOwoKJGFtb3VudDggPSAxMDEwMDA7CiR0ZXh0OCAgID0gbnVtYmVyVG9UZXh0KCRhbW91bnQ4KTsKCmVjaG8gItCd0LAg0LLQsNGI0LXQvCDRgdGH0LXRgtGDIHskdGV4dDh9XG4iOwoKJGFtb3VudDkgPSA4MjAwMDsKJHRleHQ5ICAgPSBudW1iZXJUb1RleHQoJGFtb3VudDkpOwoKZWNobyAi0J3QsCDQstCw0YjQtdC8INGB0YfQtdGC0YMgeyR0ZXh0OX1cbiI7