牛骨文教育服务平台(让学习变的简单)
博文笔记

php逐个汉字遍历字符串

创建时间:2016-07-26 投稿人: 浏览次数:2617
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 "<hr/>";
$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);
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。