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 "<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);
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);
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。