• 技术文章 >php教程 >php手册

    如何正确统计中文字数?

    2016-06-21 09:14:10原创922

    统计|中文

    PHP代码:--------------------------------------------------------------------------------
    function ccStrLen($str) #计算中英文混合字符串的长度
    {
    $ccLen=0;
    $ascLen=strlen($str);
    $ind=0;
    $hasCC=ereg("[xA1-xFE]",$str); #判断是否有汉字
    $hasAsc=ereg("[x01-xA0]",$str); #判断是否有ASCII字符
    if($hasCC && !$hasAsc) #只有汉字的情况
    return strlen($str)/2;
    if(!$hasCC && $hasAsc) #只有Ascii字符的情况
    return strlen($str);
    for($ind=0;$ind<$ascLen;$ind++)
    {
    if(ord(substr($str,$ind,1))>0xa0)
    {
    $ccLen++;
    $ind++;
    }
    else
    {
    $ccLen++;
    }
    }
    return $ccLen;
    }
    function ccStrLeft($str,$len) #从左边截取中英文混合字符串
    {
    $ascLen=strlen($str); if($ascLen<=$len) return $str;
    $hasCC=ereg("[xA1-xFE]",$str); #同上
    $hasAsc=ereg("[x01-xA0]",$str);
    if(!$hasCC) return substr($str,0,$len);
    if(!$hasAsc)
    if($len & 0x01) #如果长度是奇数
    return substr($str,0,$len+$len-2);
    else
    return substr($str,0,$len+$len);
    $cind=0;$flag=0;
    while($cind<$ascLen)
    {
    if(ord(substr($str,$cind,1))<0xA1) $flag++;
    $cind++;
    }
    if($flag & 0x01)
    return substr($str,0,$len);
    else
    return substr($str,0,$len-1);
    }

    --------------------------------------------------------------------------------



    __________________

    ┌──┬──┐
    │ ╭┘  │
    │ ╰┐╭╮│
    ├┐┌┼┘└┤
    │╰╯└╮ │
    │  ┌╯ │
    └──┴──┘

    参考
    http://www.csdn.net/develop/Read_Article.asp?Id=20454



    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:str return substr quot len
    上一篇:php 与 java(二) 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• mysql 数据备份类代码• Xgcalendar 新增Php demo• PHP 采集程序原理分析篇• PHP类中的魔术方法(Magic Method)简明总结,magicmethod• PHP 教程之如何使用BLOB存取图片信息实例
    1/1

    PHP中文网