/ Published in: PHP
This function accept one parameter (integer or float) and returns the same number writed with words. Useful for currencies and invoices.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
function slovom($num, $tri = 0) { 0 => "", 0 => " един", 1 => "", 2 => " eдин", 3 => " eдин", 4 => " eдин", 5 => " eдин", 6 => " eдин", 7 => " eдин", 8 => " eдин", 9 => " eдин", 10 => " eдин", ), 0 => " два", 1 => " двe", 2 => " два", 3 => " два", 4 => " два", 5 => " два", 6 => " два", 7 => " два", 8 => " два", 9 => " два", 10 => " два", ), 3 => " три", 4 => " четири", 5 => " пет", 6 => " шеÑÑ‚", 7 => " Ñедем", 8 => " оÑем", 9 => " девет", 10 => " деÑет", 11 => " единадеÑет", 12 => " дванадеÑет", 13 => " тринадеÑет", 14 => " четиринадеÑет", 15 => " петнадеÑет", 16 => " шеÑтнадеÑет", 17 => " ÑедемнадеÑет", 18 => " оÑемнадеÑет", 19 => " деветнадеÑет" ); 0 => "", 1 => "", 2 => " двадеÑет", 3 => " тридеÑет", 4 => " четиридеÑет", 5 => " петдеÑет", 6 => " шеÑтдеÑет", 7 => " ÑедемдеÑет", 8 => " оÑемдеÑет", 9 => " деведеÑет" ); 0 => "", 1 => " Ñто", 2 => " двеÑта", 3 => " триÑта", 4 => " четириÑтотин", 5 => " петÑтотин", 6 => " шеÑÑ‚Ñтотин", 7 => " ÑедемÑтотин", 8 => " оÑемÑтотин", 9 => " деветÑтотин", ); 0 => "", 0 => " хилÑда", 1 => " хилÑди"), 0 => " милион", 1 => " милиона"), 0 => " билион", 1 => " билионa"), 0 => " трилион", 1 => " трилиона"), 0 => " квадрилион", 1 => " квадрилиона"), 0 => " квинтилион", 1 => " квинтилиони"), 0 => " ÑикÑтилион", 1 => " ÑикÑтилион"), 0 => " Ñептилион", 1 => " Ñептилиони"), 0 => " октилион", 1 => " октилион"), 0 => " нонилион", 1 => " нонилиои") ); //взимаме Ñамо цÑлата чаÑÑ‚ от чиÑлото, без ÑтойноÑтта //Ñлед деÑетичната Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ $num = $n[0]; $r = (int) ($num / 1000); $x = ($num / 100) % 10; $y = $num % 100; $str = ""; // Ñтотици if ($x > 0) { $str = $stotici[$x]; } // единици и деÑетици if ($y < 20) { if($y == 0 && $r > 0) { $str = ' и '.$str; } $str .= ' '.$edinici[$y][$tri]; } else { $str .= ' '.$edinici[$y]; } } else { if($edinici[$y % 10]) { $str .= $desetici[(int) ($y / 10)]; $str .= ' и'; $str .= $edinici[$y % 10][$tri]; } else { $str .= $edinici[$y % 10]; } } else { $str .= ' и'.$desetici[(int) ($y / 10)]; } } // добавÑне на модификатор - хилÑди, милиони, билиони if ($str != "") { //Ðко има зададени опции за единÑтвено и мн. чиÑло //мн. чиÑло ли е? if($num > 1) { $str .= $tripleti[$tri][1]; } else { $str .= $tripleti[$tri][0]; } } else { $str .= $tripleti[$tri]; } } //ако Ñме на първата Ñтъпка (Ñ‚.е. определÑме чиÑлото до Ñтотици) if($tri == 0) { //добавÑме Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð·Ð° лева $str .= ' лева'; //и ако има Ñетнати Ñтотинки ги добавÑме и Ñ‚ÑÑ… $str .= ' и '.$n[1].'ÑÑ‚.'; } } // продължаване рекруÑивно? if ($r > 0) { return slovom($r, $tri+1).$str; } else { return $str; } }
URL: http://vladimir-ivanov.net