Example #1
0
function Number2Word_Rus($source, $IS_MONEY = "Y", $currency = "")
{
    $result = "";
    if (strlen($currency) <= 0 || $currency == "RUR") {
        $currency = "RUB";
    }
    $arNumericLang = array("RUB" => array("1c" => "сто ", "2c" => "двести ", "3c" => "триста ", "4c" => "четыреста ", "5c" => "п¤тьсот ", "6c" => "шестьсот ", "7c" => "семьсот ", "8c" => "восемьсот ", "9c" => "дев¤тьсот ", "1d0e" => "дес¤ть ", "1d1e" => "одиннадцать ", "1d2e" => "двенадцать ", "1d3e" => "тринадцать ", "1d4e" => "четырнадцать ", "1d5e" => "п¤тнадцать ", "1d6e" => "шестнадцать ", "1d7e" => "семнадцать ", "1d8e" => "восемнадцать ", "1d9e" => "дев¤тнадцать ", "2d" => "двадцать ", "3d" => "тридцать ", "4d" => "сорок ", "5d" => "п¤тьдес¤т ", "6d" => "шестьдес¤т ", "7d" => "семьдес¤т ", "8d" => "восемьдес¤т ", "9d" => "дев¤носто ", "5e" => "п¤ть ", "6e" => "шесть ", "7e" => "семь ", "8e" => "восемь ", "9e" => "дев¤ть ", "1et" => "одна тыс¤ча ", "2et" => "две тыс¤чи ", "3et" => "три тыс¤чи ", "4et" => "четыре тыс¤чи ", "1em" => "один миллион ", "2em" => "два миллиона ", "3em" => "три миллиона ", "4em" => "четыре миллиона ", "1eb" => "один миллиард ", "2eb" => "два миллиарда ", "3eb" => "три миллиарда ", "4eb" => "четыре миллиарда ", "1e." => "один рубль ", "2e." => "два рубл¤ ", "3e." => "три рубл¤ ", "4e." => "четыре рубл¤ ", "1e" => "один ", "2e" => "два ", "3e" => "три ", "4e" => "четыре ", "11k" => "11 копеек", "12k" => "12 копеек", "13k" => "13 копеек", "14k" => "14 копеек", "1k" => "1 копейка", "2k" => "2 копейки", "3k" => "3 копейки", "4k" => "4 копейки", "." => "рублей ", "t" => "тыс¤ч ", "m" => "миллионов ", "b" => "миллиардов ", "k" => " копеек"), "UAH" => array("1c" => "сто ", "2c" => "дв≥ст≥ ", "3c" => "триста ", "4c" => "чотириста ", "5c" => "п'¤тсот ", "6c" => "ш≥стсот ", "7c" => "с≥мсот ", "8c" => "в≥с≥мсот ", "9c" => "дев'¤тьсот ", "1d0e" => "дес¤ть ", "1d1e" => "одинадц¤ть ", "1d2e" => "дванадц¤ть ", "1d3e" => "тринадц¤ть ", "1d4e" => "чотирнадц¤ть ", "1d5e" => "п'¤тнадц¤ть ", "1d6e" => "ш≥стнадц¤ть ", "1d7e" => "с≥мнадц¤ть ", "1d8e" => "в≥с≥мнадц¤ть ", "1d9e" => "дев'¤тнадц¤ть ", "2d" => "двадц¤ть ", "3d" => "тридц¤ть ", "4d" => "сорок ", "5d" => "п'¤тдес¤т ", "6d" => "ш≥стдес¤т ", "7d" => "с≥мдес¤т ", "8d" => "в≥с≥мдес¤т ", "9d" => "дев'¤носто ", "5e" => "п'¤ть ", "6e" => "ш≥сть ", "7e" => "с≥м ", "8e" => "в≥с≥м ", "9e" => "дев'¤ть ", "1e." => "один гривн¤ ", "2e." => "два гривн≥ ", "3e." => "три гривн≥ ", "4e." => "чотири гривн≥ ", "1e" => "один ", "2e" => "два ", "3e" => "три ", "4e" => "чотири ", "1et" => "одна тис¤ча ", "2et" => "дв≥ тис¤ч≥ ", "3et" => "три тис¤ч≥ ", "4et" => "чотири тис¤ч≥ ", "1em" => "один м≥льйон ", "2em" => "два м≥льйона ", "3em" => "три м≥льйона ", "4em" => "чотири м≥льйона ", "1eb" => "один м≥ль¤рд ", "2eb" => "два м≥ль¤рда ", "3eb" => "три м≥ль¤рда ", "4eb" => "чотири м≥ль¤рда ", "11k" => "11 коп≥йок", "12k" => "12 коп≥йок", "13k" => "13 коп≥йок", "14k" => "14 коп≥йок", "1k" => "1 коп≥йка", "2k" => "2 коп≥йки", "3k" => "3 коп≥йки", "4k" => "4 коп≥йки", "." => "гривень ", "t" => "тис¤ч ", "m" => "м≥льйон≥в ", "b" => "м≥ль¤рд≥в ", "k" => " коп≥йок"));
    // k - копейки
    if ($IS_MONEY == "Y") {
        $source = DoubleVal($source);
        $dotpos = strpos($source, ".");
        if ($dotpos === false) {
            $ipart = $source;
            $fpart = "";
        } else {
            $ipart = substr($source, 0, $dotpos);
            $fpart = substr($source, $dotpos + 1);
        }
        $fpart = substr($fpart, 0, 2);
        while (strlen($fpart) < 2) {
            $fpart .= "0";
        }
    } else {
        $source = IntVal($source);
        $ipart = $source;
        $fpart = "";
    }
    while ($ipart[0] == "0") {
        $ipart = substr($ipart, 1);
    }
    $ipart1 = StrRev($ipart);
    $ipart = "";
    $i = 0;
    while ($i < strlen($ipart1)) {
        $ipart_tmp = $ipart1[$i];
        // t - тыс¤чи; m - милионы; b - миллиарды;
        // e - единицы; d - дес¤тки; c - сотни;
        if ($i % 3 == 0) {
            if ($i == 0) {
                $ipart_tmp .= "e";
            } elseif ($i == 3) {
                $ipart_tmp .= "et";
            } elseif ($i == 6) {
                $ipart_tmp .= "em";
            } elseif ($i == 9) {
                $ipart_tmp .= "eb";
            } else {
                $ipart_tmp .= "x";
            }
        } elseif ($i % 3 == 1) {
            $ipart_tmp .= "d";
        } elseif ($i % 3 == 2) {
            $ipart_tmp .= "c";
        }
        $ipart = $ipart_tmp . $ipart;
        $i++;
    }
    if ($IS_MONEY == "Y") {
        $result = $ipart . "." . $fpart . "k";
    } else {
        $result = $ipart;
    }
    if ($result[0] == ".") {
        $result = "ноль " . $result;
    }
    $result = str_replace("0c0d0et", "", $result);
    $result = str_replace("0c0d0em", "", $result);
    $result = str_replace("0c0d0eb", "", $result);
    $result = str_replace("0c", "", $result);
    $result = str_replace("1c", $arNumericLang[$currency]["1c"], $result);
    $result = str_replace("2c", $arNumericLang[$currency]["2c"], $result);
    $result = str_replace("3c", $arNumericLang[$currency]["3c"], $result);
    $result = str_replace("4c", $arNumericLang[$currency]["4c"], $result);
    $result = str_replace("5c", $arNumericLang[$currency]["5c"], $result);
    $result = str_replace("6c", $arNumericLang[$currency]["6c"], $result);
    $result = str_replace("7c", $arNumericLang[$currency]["7c"], $result);
    $result = str_replace("8c", $arNumericLang[$currency]["8c"], $result);
    $result = str_replace("9c", $arNumericLang[$currency]["9c"], $result);
    $result = str_replace("1d0e", $arNumericLang[$currency]["1d0e"], $result);
    $result = str_replace("1d1e", $arNumericLang[$currency]["1d1e"], $result);
    $result = str_replace("1d2e", $arNumericLang[$currency]["1d2e"], $result);
    $result = str_replace("1d3e", $arNumericLang[$currency]["1d3e"], $result);
    $result = str_replace("1d4e", $arNumericLang[$currency]["1d4e"], $result);
    $result = str_replace("1d5e", $arNumericLang[$currency]["1d5e"], $result);
    $result = str_replace("1d6e", $arNumericLang[$currency]["1d6e"], $result);
    $result = str_replace("1d7e", $arNumericLang[$currency]["1d7e"], $result);
    $result = str_replace("1d8e", $arNumericLang[$currency]["1d8e"], $result);
    $result = str_replace("1d9e", $arNumericLang[$currency]["1d9e"], $result);
    $result = str_replace("0d", "", $result);
    $result = str_replace("2d", $arNumericLang[$currency]["2d"], $result);
    $result = str_replace("3d", $arNumericLang[$currency]["3d"], $result);
    $result = str_replace("4d", $arNumericLang[$currency]["4d"], $result);
    $result = str_replace("5d", $arNumericLang[$currency]["5d"], $result);
    $result = str_replace("6d", $arNumericLang[$currency]["6d"], $result);
    $result = str_replace("7d", $arNumericLang[$currency]["7d"], $result);
    $result = str_replace("8d", $arNumericLang[$currency]["8d"], $result);
    $result = str_replace("9d", $arNumericLang[$currency]["9d"], $result);
    $result = str_replace("0e", "", $result);
    $result = str_replace("5e", $arNumericLang[$currency]["5e"], $result);
    $result = str_replace("6e", $arNumericLang[$currency]["6e"], $result);
    $result = str_replace("7e", $arNumericLang[$currency]["7e"], $result);
    $result = str_replace("8e", $arNumericLang[$currency]["8e"], $result);
    $result = str_replace("9e", $arNumericLang[$currency]["9e"], $result);
    $result = str_replace("1et", $arNumericLang[$currency]["1et"], $result);
    $result = str_replace("2et", $arNumericLang[$currency]["2et"], $result);
    $result = str_replace("3et", $arNumericLang[$currency]["3et"], $result);
    $result = str_replace("4et", $arNumericLang[$currency]["4et"], $result);
    $result = str_replace("1em", $arNumericLang[$currency]["1em"], $result);
    $result = str_replace("2em", $arNumericLang[$currency]["2em"], $result);
    $result = str_replace("3em", $arNumericLang[$currency]["3em"], $result);
    $result = str_replace("4em", $arNumericLang[$currency]["4em"], $result);
    $result = str_replace("1eb", $arNumericLang[$currency]["1eb"], $result);
    $result = str_replace("2eb", $arNumericLang[$currency]["2eb"], $result);
    $result = str_replace("3eb", $arNumericLang[$currency]["3eb"], $result);
    $result = str_replace("4eb", $arNumericLang[$currency]["4eb"], $result);
    if ($IS_MONEY == "Y") {
        $result = str_replace("1e.", $arNumericLang[$currency]["1e."], $result);
        $result = str_replace("2e.", $arNumericLang[$currency]["2e."], $result);
        $result = str_replace("3e.", $arNumericLang[$currency]["3e."], $result);
        $result = str_replace("4e.", $arNumericLang[$currency]["4e."], $result);
    } else {
        $result = str_replace("1e", $arNumericLang[$currency]["1e"], $result);
        $result = str_replace("2e", $arNumericLang[$currency]["2e"], $result);
        $result = str_replace("3e", $arNumericLang[$currency]["3e"], $result);
        $result = str_replace("4e", $arNumericLang[$currency]["4e"], $result);
    }
    if ($IS_MONEY == "Y") {
        $result = str_replace("11k", $arNumericLang[$currency]["11k"], $result);
        $result = str_replace("12k", $arNumericLang[$currency]["12k"], $result);
        $result = str_replace("13k", $arNumericLang[$currency]["13k"], $result);
        $result = str_replace("14k", $arNumericLang[$currency]["14k"], $result);
        $result = str_replace("1k", $arNumericLang[$currency]["1k"], $result);
        $result = str_replace("2k", $arNumericLang[$currency]["2k"], $result);
        $result = str_replace("3k", $arNumericLang[$currency]["3k"], $result);
        $result = str_replace("4k", $arNumericLang[$currency]["4k"], $result);
    }
    if ($IS_MONEY == "Y") {
        $result = str_replace(".", $arNumericLang[$currency]["."], $result);
    }
    $result = str_replace("t", $arNumericLang[$currency]["t"], $result);
    $result = str_replace("m", $arNumericLang[$currency]["m"], $result);
    $result = str_replace("b", $arNumericLang[$currency]["b"], $result);
    if ($IS_MONEY == "Y") {
        $result = str_replace("k", $arNumericLang[$currency]["k"], $result);
    }
    return ToUpper(substr($result, 0, 1)) . substr($result, 1);
}
Example #2
0
function Number2Word_Rus($source, $IS_MONEY = "Y", $currency = "")
{
    $result = "";
    if (strlen($currency) <= 0 || $currency == "RUR") {
        $currency = "RUB";
    }
    $arNumericLang = array("RUB" => array("1c" => "сто ", "2c" => "двести ", "3c" => "триста ", "4c" => "четыреста ", "5c" => "пятьсот ", "6c" => "шестьсот ", "7c" => "семьсот ", "8c" => "восемьсот ", "9c" => "девятьсот ", "1d0e" => "десять ", "1d1e" => "одиннадцать ", "1d2e" => "двенадцать ", "1d3e" => "тринадцать ", "1d4e" => "четырнадцать ", "1d5e" => "пятнадцать ", "1d6e" => "шестнадцать ", "1d7e" => "семнадцать ", "1d8e" => "восемнадцать ", "1d9e" => "девятнадцать ", "2d" => "двадцать ", "3d" => "тридцать ", "4d" => "сорок ", "5d" => "пятьдесят ", "6d" => "шестьдесят ", "7d" => "семьдесят ", "8d" => "восемьдесят ", "9d" => "девяносто ", "5e" => "пять ", "6e" => "шесть ", "7e" => "семь ", "8e" => "восемь ", "9e" => "девять ", "1et" => "одна тысяча ", "2et" => "две тысячи ", "3et" => "три тысячи ", "4et" => "четыре тысячи ", "1em" => "один миллион ", "2em" => "два миллиона ", "3em" => "три миллиона ", "4em" => "четыре миллиона ", "1eb" => "один миллиард ", "2eb" => "два миллиарда ", "3eb" => "три миллиарда ", "4eb" => "четыре миллиарда ", "1e." => "один рубль ", "2e." => "два рубля ", "3e." => "три рубля ", "4e." => "четыре рубля ", "1e" => "один ", "2e" => "два ", "3e" => "три ", "4e" => "четыре ", "11k" => "11 копеек", "12k" => "12 копеек", "13k" => "13 копеек", "14k" => "14 копеек", "1k" => "1 копейка", "2k" => "2 копейки", "3k" => "3 копейки", "4k" => "4 копейки", "." => "рублей ", "t" => "тысяч ", "m" => "миллионов ", "b" => "миллиардов ", "k" => " копеек"), "UAH" => array("1c" => "сто ", "2c" => "двісті ", "3c" => "триста ", "4c" => "чотириста ", "5c" => "п'ятсот ", "6c" => "шістсот ", "7c" => "сімсот ", "8c" => "вісімсот ", "9c" => "дев'ятьсот ", "1d0e" => "десять ", "1d1e" => "одинадцять ", "1d2e" => "дванадцять ", "1d3e" => "тринадцять ", "1d4e" => "чотирнадцять ", "1d5e" => "п'ятнадцять ", "1d6e" => "шістнадцять ", "1d7e" => "сімнадцять ", "1d8e" => "вісімнадцять ", "1d9e" => "дев'ятнадцять ", "2d" => "двадцять ", "3d" => "тридцять ", "4d" => "сорок ", "5d" => "п'ятдесят ", "6d" => "шістдесят ", "7d" => "сімдесят ", "8d" => "вісімдесят ", "9d" => "дев'яносто ", "5e" => "п'ять ", "6e" => "шість ", "7e" => "сім ", "8e" => "вісім ", "9e" => "дев'ять ", "1e." => "один гривня ", "2e." => "два гривні ", "3e." => "три гривні ", "4e." => "чотири гривні ", "1e" => "один ", "2e" => "два ", "3e" => "три ", "4e" => "чотири ", "1et" => "одна тисяча ", "2et" => "дві тисячі ", "3et" => "три тисячі ", "4et" => "чотири тисячі ", "1em" => "один мільйон ", "2em" => "два мільйона ", "3em" => "три мільйона ", "4em" => "чотири мільйона ", "1eb" => "один мільярд ", "2eb" => "два мільярда ", "3eb" => "три мільярда ", "4eb" => "чотири мільярда ", "11k" => "11 копійок", "12k" => "12 копійок", "13k" => "13 копійок", "14k" => "14 копійок", "1k" => "1 копійка", "2k" => "2 копійки", "3k" => "3 копійки", "4k" => "4 копійки", "." => "гривень ", "t" => "тисяч ", "m" => "мільйонів ", "b" => "мільярдів ", "k" => " копійок"));
    // k - копейки
    if ($IS_MONEY == "Y") {
        $source = DoubleVal($source);
        $dotpos = strpos($source, ".");
        if ($dotpos === false) {
            $ipart = $source;
            $fpart = "";
        } else {
            $ipart = substr($source, 0, $dotpos);
            $fpart = substr($source, $dotpos + 1);
        }
        $fpart = substr($fpart, 0, 2);
        while (strlen($fpart) < 2) {
            $fpart .= "0";
        }
    } else {
        $source = IntVal($source);
        $ipart = $source;
        $fpart = "";
    }
    while ($ipart[0] == "0") {
        $ipart = substr($ipart, 1);
    }
    $ipart1 = StrRev($ipart);
    $ipart = "";
    $i = 0;
    while ($i < strlen($ipart1)) {
        $ipart_tmp = $ipart1[$i];
        // t - тысячи; m - милионы; b - миллиарды;
        // e - единицы; d - десятки; c - сотни;
        if ($i % 3 == 0) {
            if ($i == 0) {
                $ipart_tmp .= "e";
            } elseif ($i == 3) {
                $ipart_tmp .= "et";
            } elseif ($i == 6) {
                $ipart_tmp .= "em";
            } elseif ($i == 9) {
                $ipart_tmp .= "eb";
            } else {
                $ipart_tmp .= "x";
            }
        } elseif ($i % 3 == 1) {
            $ipart_tmp .= "d";
        } elseif ($i % 3 == 2) {
            $ipart_tmp .= "c";
        }
        $ipart = $ipart_tmp . $ipart;
        $i++;
    }
    if ($IS_MONEY == "Y") {
        $result = $ipart . "." . $fpart . "k";
    } else {
        $result = $ipart;
    }
    if ($result[0] == ".") {
        $result = "ноль " . $result;
    }
    $result = str_replace("0c0d0et", "", $result);
    $result = str_replace("0c0d0em", "", $result);
    $result = str_replace("0c0d0eb", "", $result);
    $result = str_replace("0c", "", $result);
    $result = str_replace("1c", $arNumericLang[$currency]["1c"], $result);
    $result = str_replace("2c", $arNumericLang[$currency]["2c"], $result);
    $result = str_replace("3c", $arNumericLang[$currency]["3c"], $result);
    $result = str_replace("4c", $arNumericLang[$currency]["4c"], $result);
    $result = str_replace("5c", $arNumericLang[$currency]["5c"], $result);
    $result = str_replace("6c", $arNumericLang[$currency]["6c"], $result);
    $result = str_replace("7c", $arNumericLang[$currency]["7c"], $result);
    $result = str_replace("8c", $arNumericLang[$currency]["8c"], $result);
    $result = str_replace("9c", $arNumericLang[$currency]["9c"], $result);
    $result = str_replace("1d0e", $arNumericLang[$currency]["1d0e"], $result);
    $result = str_replace("1d1e", $arNumericLang[$currency]["1d1e"], $result);
    $result = str_replace("1d2e", $arNumericLang[$currency]["1d2e"], $result);
    $result = str_replace("1d3e", $arNumericLang[$currency]["1d3e"], $result);
    $result = str_replace("1d4e", $arNumericLang[$currency]["1d4e"], $result);
    $result = str_replace("1d5e", $arNumericLang[$currency]["1d5e"], $result);
    $result = str_replace("1d6e", $arNumericLang[$currency]["1d6e"], $result);
    $result = str_replace("1d7e", $arNumericLang[$currency]["1d7e"], $result);
    $result = str_replace("1d8e", $arNumericLang[$currency]["1d8e"], $result);
    $result = str_replace("1d9e", $arNumericLang[$currency]["1d9e"], $result);
    $result = str_replace("0d", "", $result);
    $result = str_replace("2d", $arNumericLang[$currency]["2d"], $result);
    $result = str_replace("3d", $arNumericLang[$currency]["3d"], $result);
    $result = str_replace("4d", $arNumericLang[$currency]["4d"], $result);
    $result = str_replace("5d", $arNumericLang[$currency]["5d"], $result);
    $result = str_replace("6d", $arNumericLang[$currency]["6d"], $result);
    $result = str_replace("7d", $arNumericLang[$currency]["7d"], $result);
    $result = str_replace("8d", $arNumericLang[$currency]["8d"], $result);
    $result = str_replace("9d", $arNumericLang[$currency]["9d"], $result);
    $result = str_replace("0e", "", $result);
    $result = str_replace("5e", $arNumericLang[$currency]["5e"], $result);
    $result = str_replace("6e", $arNumericLang[$currency]["6e"], $result);
    $result = str_replace("7e", $arNumericLang[$currency]["7e"], $result);
    $result = str_replace("8e", $arNumericLang[$currency]["8e"], $result);
    $result = str_replace("9e", $arNumericLang[$currency]["9e"], $result);
    $result = str_replace("1et", $arNumericLang[$currency]["1et"], $result);
    $result = str_replace("2et", $arNumericLang[$currency]["2et"], $result);
    $result = str_replace("3et", $arNumericLang[$currency]["3et"], $result);
    $result = str_replace("4et", $arNumericLang[$currency]["4et"], $result);
    $result = str_replace("1em", $arNumericLang[$currency]["1em"], $result);
    $result = str_replace("2em", $arNumericLang[$currency]["2em"], $result);
    $result = str_replace("3em", $arNumericLang[$currency]["3em"], $result);
    $result = str_replace("4em", $arNumericLang[$currency]["4em"], $result);
    $result = str_replace("1eb", $arNumericLang[$currency]["1eb"], $result);
    $result = str_replace("2eb", $arNumericLang[$currency]["2eb"], $result);
    $result = str_replace("3eb", $arNumericLang[$currency]["3eb"], $result);
    $result = str_replace("4eb", $arNumericLang[$currency]["4eb"], $result);
    if ($IS_MONEY == "Y") {
        $result = str_replace("1e.", $arNumericLang[$currency]["1e."], $result);
        $result = str_replace("2e.", $arNumericLang[$currency]["2e."], $result);
        $result = str_replace("3e.", $arNumericLang[$currency]["3e."], $result);
        $result = str_replace("4e.", $arNumericLang[$currency]["4e."], $result);
    } else {
        $result = str_replace("1e", $arNumericLang[$currency]["1e"], $result);
        $result = str_replace("2e", $arNumericLang[$currency]["2e"], $result);
        $result = str_replace("3e", $arNumericLang[$currency]["3e"], $result);
        $result = str_replace("4e", $arNumericLang[$currency]["4e"], $result);
    }
    if ($IS_MONEY == "Y") {
        $result = str_replace("11k", $arNumericLang[$currency]["11k"], $result);
        $result = str_replace("12k", $arNumericLang[$currency]["12k"], $result);
        $result = str_replace("13k", $arNumericLang[$currency]["13k"], $result);
        $result = str_replace("14k", $arNumericLang[$currency]["14k"], $result);
        $result = str_replace("1k", $arNumericLang[$currency]["1k"], $result);
        $result = str_replace("2k", $arNumericLang[$currency]["2k"], $result);
        $result = str_replace("3k", $arNumericLang[$currency]["3k"], $result);
        $result = str_replace("4k", $arNumericLang[$currency]["4k"], $result);
    }
    if ($IS_MONEY == "Y") {
        $result = str_replace(".", $arNumericLang[$currency]["."], $result);
    }
    $result = str_replace("t", $arNumericLang[$currency]["t"], $result);
    $result = str_replace("m", $arNumericLang[$currency]["m"], $result);
    $result = str_replace("b", $arNumericLang[$currency]["b"], $result);
    if ($IS_MONEY == "Y") {
        $result = str_replace("k", $arNumericLang[$currency]["k"], $result);
    }
    return ToUpper(substr($result, 0, 1)) . substr($result, 1);
}