全网整合营销服务商

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

免费咨询热线: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()用法实例分析  # 英文  # 第一个  # 是这样  # 这两个  # 第二个  # 分别为  # 操作技巧  # 相关内容  # 是有  # 才是  # 感兴趣  # 给大家  # 自定义  # 更多关于  # 所述  # 程序设计  # 再为  # 编辑工具  # 也就是说  # 特殊字符 


相关文章: 可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  如何通过老薛主机一键快速建站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  如何在宝塔面板中创建新站点?  如何在万网自助建站平台快速创建网站?  如何安全更换建站之星模板并保留数据?  建站之星Pro快速搭建教程:模板选择与功能配置指南  如何快速上传建站程序避免常见错误?  简单实现Android验证码  Java解压缩zip - 解压缩多个文件或文件夹实例  如何快速搭建高效可靠的建站解决方案?  如何配置FTP站点权限与安全设置?  如何用AWS免费套餐快速搭建高效网站?  微课制作网站有哪些,微课网怎么进?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  建站主机选购指南与交易推荐:核心配置解析  青浦网站制作公司有哪些,苹果官网发货地是哪里?    广州营销型建站服务商推荐:技术优势与SEO优化解析  Swift中swift中的switch 语句  建站之星安装模板失败:服务器环境不兼容?  潮流网站制作头像软件下载,适合母子的网名有哪些?  内网网站制作软件,内网的网站如何发布到外网?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  网站制作服务平台,有什么网站可以发布本地服务信息?  宿州网站制作公司兴策,安徽省低保查询网站?  如何正确选择百度移动适配建站域名?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  如何快速搭建高效WAP手机网站?  如何选择网络建站服务器?高效建站必看指南  c++怎么用jemalloc c++替换默认内存分配器【性能】  如何彻底删除建站之星生成的Banner?  如何快速搭建高效香港服务器网站?  如何制作网站标识牌,动态网站如何制作(教程)?  如何通过FTP空间快速搭建安全高效网站?  C++中引用和指针有什么区别?(代码说明)  C#怎么使用委托和事件 C# delegate与event编程方法  想学网站制作怎么学,建立一个网站要花费多少?  建站之星导航菜单设置与功能模块配置全攻略  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何选择高效便捷的WAP商城建站系统?  济南专业网站制作公司,济南信息工程学校怎么样?  宝塔面板如何快速创建新站点?  建站之星伪静态规则如何正确配置?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何基于云服务器快速搭建网站及云盘系统?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  宝塔新建站点报错如何解决? 

您的项目需求

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