PHP计算字符长度函数支持算中英文混合

因为寂寞所以研究,因为研究所以寂寞,所以我并不寂寞! 最近为了稚子网的规划心里甚是烦恼,更多烦恼的是技术上还有很多解决不了的问题,人们常说书到用时方恨少,真的贼有体

因为寂寞所以研究,因为研究所以寂寞,所以我并不寂寞!

最近为了稚子网的规划心里甚是烦恼,更多烦恼的是技术上还有很多解决不了的问题,人们常说书到用时方恨少,真的贼有体会了。
因为我对论坛程序不熟悉,又想为dedecms加个论坛,可是貌似整合其他论坛程序总会有大堆的问题。我也是比较怕死的人,所以决定用织梦圈子插件来修改好了,功能上也大致满足了我的需求,就是样式伤眼罢了。
下面是在圈子代码中找到的计算中英文的函数,觉得还是不错的,分享下,合适可以用到自己的项目中去。
function CountStrLen($str)
{
    global $cfg_soft_lang;
    if(strtolower(substr(trim($cfg_soft_lang), 0, 3)) == 'utf')
    {
        preg_match_all("/./su", $str, $m);
        return count($m[0]);
    }
    else
    {
        $ccLen = 0; $ascLen = strlen($str); $ind = 0;
        $hasCC = preg_match("#[xA1-xFE]#", $str); //判断是否有汉字
        $hasAsc = preg_match("#[x01-xA0]#", $str); //判断是否有ASCII字符
        if($hasCC && !$hasAsc)
        {
            return strlen($str) / 2;    //只有汉字的情况
        }
        if(!$hasCC && $hasAsc)
        {
            return strlen($str);      //只有Ascii字符的情况
        }
        for($ind=0;$ind<$ascLen;$ind++)
        {
            if(ord(substr($str,$ind,1)) > 0xa0)
            {
                $ccLen++;
                $ind++;
            }
            else
            {
                $ccLen++;
            }
        }
        return $ccLen;
    }

}

声明:博客遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.彭朝领个人博客的原创文章,请转载时务必注明文章作者和"来源:彭朝领个人博客",不尊重原创的行为本网或将追究责任。
关于作者
微信:wangrubiao
  • 姓名:王儒标
  • 职业:留守待业
  • xxx:**********
  • xxx:**********
随机图文
更多>>>  

我是文章的标题...

虽然我不知道你会有多长,但是我觉得不会太短,毕竟还是在测试的阶段是吧?哈哈没事的,那你贼长吧。嗯好的....2014-02-30

我是文章的标题...

虽然我不知道你会有多长,但是我觉得不会太短,毕竟还是在测试的阶段是吧?哈哈没事的,那你贼长吧。嗯好的....2014-02-30

我是文章的标题...

虽然我不知道你会有多长,但是我觉得不会太短,毕竟还是在测试的阶段是吧?哈哈没事的,那你贼长吧。嗯好的....2014-02-30
文章分类
更多>>>  
摄影大作
更多>>>