@ 2018-08-28T17:21:39Z <?php
function inclineWord($number, $word1, $word2, $word5)
{
if ($number % 100 >= 11 and $number % 100 <= 14) {
return $word5;
} elseif ($number % 10 == 1) {
return $word1;
} elseif ($number % 10 >= 2 and $number % 10 <= 4) {
return $word2;
} else
return $word5;
}
function smallNumberToText($number, $isFemale)
{
$spelling = array(
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 => 'девятнадцать'
);
$femaleSpelling = array(
1 => 'одна', 2 => 'две'
);
$array = [];
if ($number == 0) {
return $spelling[$number];
}
if ($number % 1000 >= 100 && $number % 1000 <= 999) {
$array[] = $spelling[$number % 1000 - ($number % 1000 % 100)];
}
if ($number % 100 >= 20 && $number % 100 <= 99) {
$array[] = $spelling[$number % 100 - ($number % 100 % 10)];
}
if ($number % 100 >= 10 && $number % 100 <= 19) {
$array[] = $spelling[$number % 100];
} elseif ($isFemale == 0 && $number % 10 >= 1 && $number % 10 <= 9) {
$array[] = $spelling[$number % 10];
} elseif ($isFemale == 1 && $number % 10 >= 1 && $number % 10 <= 2) {
$array[] = $femaleSpelling[$number % 10];
} elseif ($isFemale == 1 && $number % 10 >= 3 && $number % 10 <= 9) {
$array[] = $spelling[$number % 10];
}
$result = implode(" ", $array);
return $result;
}
function numberToText($number)
{
$array = [];
if (floor($number / 1000000) > 0) {
$array[] = smallNumberToText(floor($number / 1000000), 0) . inclineWord(floor($number / 1000000), " миллион", " миллиона", " миллионов");
}
if (floor($number / 1000) > 0) {
$array[] = smallNumberToText(floor($number / 1000), 1) . inclineWord(floor($number / 1000), " тысяча", " тысячи", " тысяч");
}
if ($number > 0) {
$array[] = smallNumberToText($number % 1000, 0) . inclineWord($number % 1000, " рубль", " рубля", " рублей");
}
$result = implode(" ", $array);
return $result;
}
$a = numberToText(120000);
echo $a;
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.1.0 - 7.1.21 , 7.2.0 - 7.2.33 , 7.3.16 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.4 , 8.3.6 сто двадцать тысяч ноль рублей Output for 8.3.5 Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
сто двадцать тысяч ноль рублей preferences:dark mode live preview
160.03 ms | 402 KiB | 168 Q