全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php自定义函数实现统计中文字符串长度的方法小结

本文实例讲述了php自定义函数实现统计中文字符串长度的方法。分享给大家供大家参考,具体如下:

中文字符计算为2个字符 英文字符计算为1个

代码

/**
* 可以统计中文字符串长度的函数
*
*/
function abslength($str)
{
  $len=strlen($str);
  $i=0;
  while($i<$len)
  {
    if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i]))
    {
      $i+=2;
    }
    else
    {
      $i+=1;
    }
  }
  return $i;
}

另:php判断字符长度:中文,英文,数字。

这个方法很多。 记录一个简单的。

mb_strlen($str, 'GBK');

缺点是要安装mb库。

不过这个还是有部分问题待解决。

GB码编码规则是这样的:每个汉字由两个字节构成,第一个字节的范围从0XA1-0XFE,共96种。第二个字节的范围分别为0XA1-0XFE,共96种。利用这两个字节共可定义出 96 * 96=8836种汉字。实际共有6763个汉字。

BIG5码编码规则是这样的:每个汉字由两个字节构成,第一个字节的范围从0X81-0XFE,共126种。第二个字节的范围分别为0X40-0X7E,0XA1-0XFE,共157种。也就是说,利用这两个字节共可定义出 126 * 157=19782种汉字。这些汉字的一部分是我们常用到的,如一、丁,这些字我们称为常用字,其BIG5码的范围为0XA440-0XC671,共5401个。较不常用的字,如滥、调,我们称为次常用字,范围为 0XC940-0XF9FE,共7652个,剩下的便是一些特殊字符。

安全点的方法。

function StrLenW($str)
{
    $count = 0;
    $len = strlen($str);
     for($i=0; $i<$len; $i++,$count++)
       if(ord($str[$i])>=128)
        $i++;
     return $count;
}

最后,下面这个才是正确的,通用的!

代码:

/**作用:统计字符长度包括中文、英文、数字
* 参数:需要进行统计的字符串、编码格式目前系统统一使用UTF-8
* 修改记录:
   $str = "kds";
  echo sstrlen($str,'utf-8');
* */
function sstrlen($str,$charset) {
    $n = 0; $p = 0; $c = '';
    $len = strlen($str);
    if($charset == 'utf-8') {
      for($i = 0; $i < $len; $i++) {
        $c = ord($str{$i});
        if($c > 252) {
          $p = 5;
        } elseif($c > 248) {
          $p = 4;
        } elseif($c > 240) {
          $p = 3;
        } elseif($c > 224) {
          $p = 2;
        } elseif($c > 192) {
          $p = 1;
        } else {
          $p = 0;
        }
        $i+=$p;$n++;
      }
    } else {
      for($i = 0; $i < $len; $i++) {
        $c = ord($str{$i});
        if($c > 127) {
          $p = 1;
        } else {
          $p = 0;
      }
        $i+=$p;$n++;
      }
    }
    return $n;
}

PS:这里再为大家推荐2款非常方便的统计工具供大家参考使用:

在线字数统计工具:
http://tools./code/zishutongji

在线字符统计与编辑工具:
http://tools./code/char_tongji

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# php  # 统计  # 中文字符串  # 长度  # PHP字符串长度计算 - strlen()函数使用介绍  # php中计算中文字符串长度、截取中文字符串的函数代码  # 最准确的php截取字符串长度函数  # 利用PHP函数计算中英文字符串长度的方法  # PHP中preg_match函数正则匹配的字符串长度问题  # php strlen mb_strlen计算中英文混排字符串长度  # 详解PHP中strlen和mb_strlen函数的区别  # 浅析PHP中strlen和mb_strlen的区别  # 自己写的php中文截取函数mb_strlen和mb_substr  # PHP中strlen()和mb_strlen()的区别浅析  # php中strlen和mb_strlen用法实例分析  # php常用字符串长度函数strlen()与mb_strlen()用法实例分析  # 英文  # 第一个  # 是这样  # 这两个  # 第二个  # 分别为  # 操作技巧  # 相关内容  # 是有  # 才是  # 感兴趣  # 给大家  # 自定义  # 更多关于  # 所述  # 程序设计  # 再为  # 编辑工具  # 也就是说  # 特殊字符 


相关文章: 专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  网站制作报价单模板图片,小松挖机官方网站报价?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  如何在建站宝盒中设置产品搜索功能?  建站之星安装需要哪些步骤及注意事项?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何通过宝塔面板实现本地网站访问?  如何正确选择百度移动适配建站域名?  大连网站设计制作招聘信息,大连投诉网站有哪些?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  建站之星备案流程有哪些注意事项?  如何用好域名打造高点击率的自主建站?  建站主机数据库如何配置才能提升网站性能?  ,怎么用自己头像做动态表情包?  如何高效利用亚马逊云主机搭建企业网站?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何获取开源自助建站系统免费下载链接?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  长沙企业网站制作哪家好,长沙水业集团官方网站?  深圳网站制作案例,网页的相关名词有哪些?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  免费ppt制作网站,有没有值得推荐的免费PPT网站?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  行程制作网站有哪些,第三方机票电子行程单怎么开?  如何在阿里云ECS服务器部署织梦CMS网站?  建站之星如何开启自定义404页面避免用户流失?  大连 网站制作,大连天途有线官网?  专业公司网站制作公司,用什么语言做企业网站比较好?  如何通过智能用户系统一键生成高效建站方案?  图册素材网站设计制作软件,图册的导出方式有几种?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  网站插件制作软件免费下载,网页视频怎么下到本地插件?  建站之星如何保障用户数据免受黑客入侵?  外贸公司网站制作哪家好,maersk船公司官网?  网站制作需要会哪些技术,建立一个网站要花费多少?  如何快速生成可下载的建站源码工具?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  怀化网站制作公司,怀化新生儿上户网上办理流程?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  网站制作的步骤包括,正确网址格式怎么写?  怎么将XML数据可视化 D3.js加载XML  如何选择建站程序?包含哪些必备功能与类型?  免费网站制作appp,免费制作app哪个平台好?  江苏网站制作公司有哪些,江苏书法考级官方网站?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  贸易公司网站制作流程,出口贸易网站设计怎么做? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。