示例#1
0
/**
 * Check callee allowed.
 * @param  string      $filePath
 * @param  array|null  &$callee
 * @param  string|null &$error
 * @return bool
 */
function is_callee_allowed(string $filePath, array &$callee = null, string &$error = null) : bool
{
    $callee = get_callee(4);
    if (strpos($callee['file'], $filePath)) {
        $error = sprintf('Call from bad scope! class: %s::%s() file: %s:%d', $callee['class'], $callee['function'], $callee['file'], $callee['line']);
        return false;
    }
    return true;
}
示例#2
0
function glog_str_from_num($int, $lang = GLOG_DEFAULT_LANG)
{
    // Возвращает число прописью. ЭКСПЕРИМЕНТАЛЬНО: до 19999 и только по-русски.
    if (!is_int($int)) {
        glog_dosyslog(__FUNCTION__ . get_callee() . ": ERROR: Wrong parameter int:" . $int . ". Should be integer. Returned as is.");
        return $int;
    }
    if ($int > 19999) {
        glog_dosyslog(__FUNCTION__ . get_callee() . ": ERROR: Function is experimental. Max number supported is 19999. " . int . " given. Returned as is.");
        return $int;
    }
    $num = strrev((string) $int);
    $len = strlen($num);
    $str = "";
    $tmp = array();
    for ($i = 0; $i < $len; $i++) {
        switch ($lang) {
            case "RU":
            default:
                if (in_array($i, array(0, 3))) {
                    if (isset($num[$i + 1]) && $num[$i + 1] == 1) {
                        switch ($num[$i]) {
                            case "0":
                                $tmp[$i] = "десять";
                                break;
                            case "1":
                                $tmp[$i] = "одиннадцать";
                                break;
                            case "2":
                                $tmp[$i] = "двенадцать";
                                break;
                            case "3":
                                $tmp[$i] = "тринадцать";
                                break;
                            case "4":
                                $tmp[$i] = "четырнадцать";
                                break;
                            case "5":
                                $tmp[$i] = "пятнадцать";
                                break;
                            case "6":
                                $tmp[$i] = "шестнадцать";
                                break;
                            case "7":
                                $tmp[$i] = "семнадцать";
                                break;
                            case "8":
                                $tmp[$i] = "восемнадцать";
                                break;
                            case "9":
                                $tmp[$i] = "девятнадцать";
                                break;
                        }
                    } else {
                        switch ($num[$i]) {
                            case "0":
                                if ($len == 1) {
                                    $tmp[$i] = "ноль";
                                } else {
                                    $tmp[$i] = "";
                                }
                                break;
                            case "1":
                                $tmp[$i] = "один";
                                break;
                            case "2":
                                $tmp[$i] = "два";
                                break;
                            case "3":
                                $tmp[$i] = "три";
                                break;
                            case "4":
                                $tmp[$i] = "четыре";
                                break;
                            case "5":
                                $tmp[$i] = "пять";
                                break;
                            case "6":
                                $tmp[$i] = "шесть";
                                break;
                            case "7":
                                $tmp[$i] = "семь";
                                break;
                            case "8":
                                $tmp[$i] = "восемь";
                                break;
                            case "9":
                                $tmp[$i] = "девять";
                                break;
                        }
                    }
                }
                if (in_array($i, array(1))) {
                    switch ($num[$i]) {
                        case "0":
                            $tmp[$i] = "";
                            break;
                        case "1":
                            $tmp[$i] = "";
                            break;
                        case "2":
                            $tmp[$i] = "двадцать";
                            break;
                        case "3":
                            $tmp[$i] = "тридцать";
                            break;
                        case "4":
                            $tmp[$i] = "сорок";
                            break;
                        case "5":
                            $tmp[$i] = "пятьдесят";
                            break;
                        case "6":
                            $tmp[$i] = "шестьдесят";
                            break;
                        case "7":
                            $tmp[$i] = "семьдесят";
                            break;
                        case "8":
                            $tmp[$i] = "восемьдесят";
                            break;
                        case "9":
                            $tmp[$i] = "девяносто";
                            break;
                    }
                }
                if (in_array($i, array(2))) {
                    switch ($num[$i]) {
                        case "0":
                            $tmp[$i] = "";
                            break;
                        case "1":
                            $tmp[$i] = "сто";
                            break;
                        case "2":
                            $tmp[$i] = "двести";
                            break;
                        case "3":
                            $tmp[$i] = "триста";
                            break;
                        case "4":
                            $tmp[$i] = "четыреста";
                            break;
                        case "5":
                            $tmp[$i] = "пятьсот";
                            break;
                        case "6":
                            $tmp[$i] = "шестьсот";
                            break;
                        case "7":
                            $tmp[$i] = "семьсот";
                            break;
                        case "8":
                            $tmp[$i] = "восемьсот";
                            break;
                        case "9":
                            $tmp[$i] = "девятьсот";
                            break;
                    }
                }
                if (in_array($i, array(3))) {
                    if (isset($num[$i + 1]) && $num[$i + 1] == 1) {
                        $tmp[$i] .= " тысяч";
                        break;
                    } else {
                        switch ($num[$i]) {
                            case "0":
                                $tmp[$i] = "";
                                break;
                            case "1":
                                $tmp[$i] = "одна тысяча";
                                break;
                            case "2":
                                $tmp[$i] = "две тысячи";
                                break;
                            case "3":
                                $tmp[$i] = "три тысячи";
                                break;
                            case "4":
                                $tmp[$i] = "четыре тысячи";
                                break;
                            case "5":
                                $tmp[$i] = "пять тысяч";
                                break;
                            case "6":
                                $tmp[$i] = "шесть тысяч";
                                break;
                            case "7":
                                $tmp[$i] = "семь тысяч";
                                break;
                            case "8":
                                $tmp[$i] = "восемь тысяч";
                                break;
                            case "9":
                                $tmp[$i] = "девять тысяч";
                                break;
                        }
                    }
                }
        }
    }
    switch ($lang) {
        case "RU":
        default:
            $str = implode(" ", array_reverse($tmp));
    }
    return $str;
}