php逐个汉字遍历字符串

function str_split_unicode($str, $l = 0) {
    if ($l > 0) {
    $ret = array();
        $len = mb_strlen($str, "UTF-8");
        for ($i = 0; $i < $len; $i += $l) {
            $ret[] = mb_substr($str, $i, $l, "UTF-8");
        }
        return $ret;
    }
    return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}
$s = '中华人民abc共和\x01国';



print_r(str_split_unicode($s));

echo "
";
$cind = 0;
$arr_cont = array();
for ($i = 0; $i < strlen($s); $i++) {
    if (strlen(substr($s, $cind, 1)) > 0) {
        if (ord(substr($s, $cind, 1)) < 192) { //如果为英文则取1个字节
            if (substr($s, $cind, 1) != " ") {
                array_push($arr_cont, substr($s, $cind, 1));
            }
            $cind++;
        } elseif(ord(substr($s, $cind, 1)) < 224) {
            array_push($arr_cont, substr($s, $cind, 2));
            $cind+=2;
        } else {
            array_push($arr_cont, substr($s, $cind, 3));
            $cind+=3;
        }
    }
}

print_r($arr_cont);

你可能感兴趣的:(php逐个汉字遍历字符串)