php判断字符串里的汉字
如$a='12你好'; 将这字符串拆开,判断出是六个字,然后把拆开的字全分开赋值给变量;输出是1,2,你,好。上面的例子如果实现?或许我想问就是:将含有中英文、数字的字符串拆分,再分别显示。不含中文的字符串我就能处理…一个汉字是2个字符,据知要用0xa0来比较作出判断是不是汉字,是的就跳一格。但我没有理解通,请大哥们给个范例吧…叩谢!
如$a='12你好'; 将这字符串拆开,判断出是六个字,然后把拆开的字全分开赋值给变量;输出是1,2,你,好。上面的例子如果实现?或许我想问就是:将含有中英文、数字的字符串拆分,再分别显示。不含中文的字符串我就能处理…一个汉字是2个字符,据知要用0xa0来比较作出判断是不是汉字,是的就跳一格。但我没有理解通,请大哥们给个范例吧…叩谢!
答案:<?php
header("Content-Type:text/html;charset=utf-8");//截取utf8字符串
function utf8Substr($str, $from, $len){
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}//拆分字符串里的每个元素并输出
function func_test($str){
$len = strlen($str);
$len_new = 0;
for($i=0;$i<$len;++$i){
++$len_new;
if(ord(substr($str, $i, 1)) > 0xa0) {
++$i;
++$i;
}
}
for($i=0;$i<$len_new;++$i){
$arr[] = utf8Substr($str,$i,1);
}
echo implode(",",$arr);
}$str='逸12你好o是否o暗s示《<';
func_test($str);
?>这个方法在utf-8编码的文件下可以实现你要的功能!
上一个:PHP 怎么实现留言板跟贴??
下一个:php 添加语句数据库出现乱码