public static function number_to_text($value, $separator = ' ') { $digits = (string) $value; if (utf8::strpos($digits, '.') !== FALSE) { $digits = explode('.', $digits); return static::number_to_text($digits[0]) . $separator . static::number_to_text($digits[1]); } $jednosci = array('zero', 'jeden', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć', 'siedem', 'osiem', 'dziewięć'); $dziesiatki = array('', 'dziesięć', 'dwadzieścia', 'trzydzieści', 'czterdzieści', 'piećdziesiąt', 'sześćdziesiąt', 'siedemdziesiąt', 'osiemdziesiąt', 'dziewiećdziesiąt'); $setki = array('', 'sto', 'dwieście', 'trzysta', 'czterysta', 'piećset', 'sześćset', 'siedemset', 'osiemset', 'dziewiećset'); $nastki = array('dziesieć', 'jedenaście', 'dwanaście', 'trzynaście', 'czternaście', 'piętnaście', 'szesnaście', 'siedemnaście', 'osiemnaście', 'dzięwietnaście'); $tysiace = array('tysiąc', 'tysiące', 'tysięcy'); $digits = (string) $value; $digits = utf8::strrev($digits); $i = utf8::strlen($digits); $string = ''; if ($i > 5 && $digits[5] > 0) { $string .= $setki[$digits[5]] . ' '; } if ($i > 4 && $digits[4] > 1) { $string .= $dziesiatki[$digits[4]] . ' '; } elseif ($i > 3 && $digits[4] == 1) { $string .= $nastki[$digits[3]] . ' '; } if ($i > 3 && $digits[3] > 0 && $digits[4] != 1) { $string .= $jednosci[$digits[3]] . ' '; } $tmpStr = utf8::substr(utf8::strrev($digits), 0, -3); if (utf8::strlen($tmpStr) > 0) { $tmpInt = (int) $tmpStr; if ($tmpInt == 1) { $string .= $tysiace[0] . ' '; } elseif ($tmpInt % 10 > 1 && $tmpInt % 10 < 5 && ($tmpInt < 10 || $tmpInt > 20)) { $string .= $tysiace[1] . ' '; } else { $string .= $tysiace[2] . ' '; } } if ($i > 2 && $digits[2] > 0) { $string .= $setki[$digits[2]] . ' '; } if ($i > 1 && $digits[1] > 1) { $string .= $dziesiatki[$digits[1]] . ' '; } elseif ($i > 0 && $digits[1] == 1) { $string .= $nastki[$digits[0]] . ' '; } if ($digits[0] > 0 && $digits[1] != 1) { $string .= $jednosci[$digits[0]] . ' '; } return $string; }
/** * utf8::strpos * * @package Kohana * @author Kohana Team * @copyright (c) 2007-2008 Kohana Team * @copyright (c) 2005 Harry Fuecks * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt */ function _strpos($str, $search, $offset = 0) { $offset = (int) $offset; if (utf8::is_ascii($str) and utf8::is_ascii($search)) { return strpos($str, $search, $offset); } if ($offset == 0) { $array = explode($search, $str, 2); return isset($array[1]) ? utf8::strlen($array[0]) : FALSE; } $str = utf8::substr($str, $offset); $pos = utf8::strpos($str, $search); return $pos === FALSE ? FALSE : $pos + $offset; }
function mb_strpos($haystack, $needle, $offset = 0) { return utf8::strpos($haystack, $needle, $offset); }