当前位置:编程学习 > php >>

php判断字符串里的汉字

如$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 添加语句数据库出现乱码

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,