Created
October 11, 2015 22:32
-
-
Save KarelWintersky/a904eda1eb98b722798f to your computer and use it in GitHub Desktop.
KW: Value converting
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @param $size | |
* @return string | |
*/ | |
function convertToHumanBytes($size) | |
{ | |
$inflexion = array(" Bytes", " K", " M", " G", " T", " P", " E", " Z", " Y"); | |
return $size ? round($size / pow(1024, ($i = floor(log($size, 1024)))), 0) . $inflexion[$i] : '0'.$inflexion[0]; | |
} | |
/* Plural forms (russian) */ | |
/** | |
* Функция возвращает число и окончание для множественного числа слова на основании числа и массива окончаний | |
* @param $number int число чего-либо | |
* @param $titles array варианты написания слов для количества 1, 2 и 5 (яблоко, яблока, яблок) | |
* @return string число и окончание | |
* see http://habrahabr.ru/post/105428/ | |
*/ | |
function str_human_plural_form($number, $titles = array('', '', '')) | |
{ | |
$cases = array(2, 0, 1, 1, 1, 2); // a bit of magic! | |
return $number . " " . $titles[($number % 100 > 4 && $number % 100 < 20) ? 2 : $cases[min($number % 10, 5)]]; | |
} | |
/** | |
* Функция возвращает только окончание для множественного числа слова на основании числа и массива окончаний | |
* @param $number int число чего-либо | |
* @param $titles array варианты написания слов для количества 1, 2 и 5 (яблоко, яблока, яблок) | |
* @return string только окончание | |
*/ | |
function get_human_plural_form($number, $titles = array('', '', '')) | |
{ | |
$cases = array(2, 0, 1, 1, 1, 2); // a bit of magic! | |
return $titles[($number % 100 > 4 && $number % 100 < 20) ? 2 : $cases[min($number % 10, 5)]]; | |
} | |
/* such as human_plural_form, but written by me at 2010 year */ | |
/** | |
* @param $num | |
* @param $str1 | |
* @param $str2 | |
* @param $str3 | |
* @return string | |
*/ | |
function getHumanFriendlyCounter($num, $str1, $str2, $str3) | |
{ | |
$ret = ''; | |
if ($num == 0) $ret = $str3; | |
if ($num == 1) $ret = $str1; | |
if ($num < 21) { | |
if ($num == 1) $ret = $str1; | |
if (($num > 1) && ($num < 5)) $ret = $str2; | |
if (($num > 4) && ($num < 21)) $ret = $str3; | |
} else { | |
$residue = ($num % 10); | |
if ($residue == 1) $ret = $str1; | |
if (($residue > 1) && ($residue < 5)) $ret = $str2; | |
if (($residue > 4) && ($residue <= 9)) $ret = $str3; | |
if ($residue == 0) $ret = $str3; | |
} | |
return $ret; | |
} | |
/** | |
* Russian Plural Form (shortest) | |
* https://gist.github.com/fomigo/2382775 | |
* @param int $n | |
* @param array $forms - формы | |
* @return string - правильная строка | |
*/ | |
function plural_form($n, $forms) { | |
return $n%10==1&&$n%100!=11?$forms[0]:($n%10>=2&&$n%10<=4&&($n%100<10||$n%100>=20)?$forms[1]:$forms[2]); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment