ALIOSS::check_char PHP Méthode

check_char() private méthode

检测是否GBK编码
Since: 2012-06-04
private check_char ( string $str, boolean $gbk = true ) : boolean
$str string
$gbk boolean
Résultat boolean
    private function check_char($str, $gbk = true)
    {
        for ($i = 0; $i < strlen($str); $i++) {
            $v = ord($str[$i]);
            if ($v > 127) {
                if ($v >= 228 && $v <= 233) {
                    if ($i + 2 >= strlen($str) - 1) {
                        return $gbk ? true : false;
                    }
                    // not enough characters
                    $v1 = ord($str[$i + 1]);
                    $v2 = ord($str[$i + 2]);
                    if ($gbk) {
                        return $v1 >= 128 && $v1 <= 191 && $v2 >= 128 && $v2 <= 191 ? false : true;
                        //GBK
                    } else {
                        return $v1 >= 128 && $v1 <= 191 && $v2 >= 128 && $v2 <= 191 ? true : false;
                    }
                }
            }
        }
        return $gbk ? true : false;
    }