Данный скрипт реализует преобразование чисел в текст, т.е., на примере денежной суммы, из 1256.18 получим Одна тысяча двести пятьдесят шесть рублей 18 копеек.
В этом классе всё настолько прозрачно, что он почти не загружен лишними комментариями.
Скрипт в нижней своей части содержит форму для тестовой работы, которую необходимо убрать в рабочей версии.
<?php
class NumToText { var $Mant = array(); // описания мантисс // к примеру (рубль, рубля, рублей) // или (метр, метра, метров) var $Expon = array(); // описания экспонент // к примеру (копейка, копейки, копеек)
function NumToText() { }
// установка описания мантисс function SetMant($mant) { $this->Mant = $mant; }
// установка описания экспонент function SetExpon($expon) { $this->Expon = $expon; }
// функция возвращает необходимый индекс описаний разряда // (миллион, миллиона, миллионов) для числа $ins // например для 29 вернется 2 (миллионов) // $ins максимум два числа function DescrIdx($ins) { if(intval($ins/10) == 1) // числа 10 - 19: 10 миллионов, 17 миллионов return 2; else { // для остальных десятков возьмем единицу $tmp = $ins%10; if($tmp == 1) // 1: 21 миллион, 1 миллион return 0; else if($tmp >= 2 && $tmp <= 4) return 1; // 2-4: 62 миллиона else return 2; // 5-9 48 миллионов } }
// IN: $in - число, // $raz - разряд числа - 1, 1000, 1000000 и т.д. // внутри функции число $in меняется // $ar_descr - массив описаний разряда (миллион, миллиона, миллионов) и т.д. // $fem - признак женского рода разряда числа (true для тысячи) function DescrSot(&$in, $raz, $ar_descr, $fem = false) { $ret = ;