本文实例讲述了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小时内与您取得联系。