PHP实时统计中文字数和区别


Posted in PHP onFebruary 28, 2019

1、PHP 中如何正确统计中文字数?这个是困扰我很久的问题,PHP 中有很多函数可以计算字符串的长度,比如下面的例子,分别使用了 strlen,mb_strlen,mb_strwidth 这个三个函数去测试统计字符串的长度,看看把中文算成几个字节:

echo strlen("你好ABC") . "";
# 输出 9
echo mb_strlen("你好ABC", 'UTF-8') . "";
# 输出 5
echo mb_strwidth("你好ABC") . "";
#输出 7

从上面的测试,我们可以看出:strlen 把中文字符算成 3 个字节,mb_strlen 不管

</script>中文还是英文,都算 1 个字节,而 mb_strwidth 则把中文算成 2 个字节,所以 mb_strwidth 才是我们想要的:中文 2 个字节,英文 1 个字节。

同样截取字符串也建议使用 mb_strimwidth,也是按照 中文 2 个字节,英文 1 个字节 方式计算之后的,并且如果字数超过截取的要求,这个函数还可以在最后面自动添加‘…'。

mb_strimwidth($post_excerpt,0,240,'...','utf-8');

注意,最后添加‘utf-8'编码参数,可以避免中文截取乱码的问题。

2、

<script type="text/javascript">
  var len = $('#Form-field-Course-description').text().length;
  $('#Form-field-Course-description-group').append('<div id="txtNum" style="position: absolute;right: -50px;bottom: 18px;"></div>');
  var len=$('#Form-field-Course-description').val().length;
  $('#txtNum').text(len+"/500");
  $('#Form-field-Course-description').bind('input propertychange', function() {
     var val=$(this).val();
     var len=val.length;
     if(len>500){
      len=500;
      $(this).val(val.substring(0,500));
     }
    $('#txtNum').text(len+"/500");
  });
</script>

根据Octobercms后台update获取textarea长度,通过input,propertychange事件监听事件

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
改进的IP计数器
Oct 09 PHP
推荐一篇入门级的Class文章
Mar 19 PHP
php抓取https的内容的代码
Apr 06 PHP
PHP 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
基于PHP 面向对象之成员方法详解
May 04 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
php中用socket模拟http中post或者get提交数据的示例代码
Aug 08 PHP
php过滤html标记属性类用法实例
Sep 23 PHP
php实现MySQL数据库备份与还原类实例
Dec 09 PHP
PHP获取网站中各文章的第一张图片的代码示例
May 20 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 PHP
如何通过PHP实现Des加密算法代码实例
May 09 PHP
PHP正则判断一个变量是否为正整数的方法
Feb 27 #PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
Feb 27 #PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 #PHP
asp函数split()对应php函数explode()
Feb 27 #PHP
PHP中引用类型和值类型功能与用法示例
Feb 26 #PHP
PHP5.6读写excel表格文件操作示例
Feb 26 #PHP
PHP中抽象类,接口功能、定义方法示例
Feb 26 #PHP
You might like
php实现字符串反转输出的方法
2015/03/14 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
vue实现文字加密功能
2019/09/27 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
python生成器表达式和列表解析
2016/03/10 Python
python实现redis三种cas事务操作
2017/12/19 Python
Python多线程扫描端口代码示例
2018/02/09 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
python如何调用java类
2020/07/05 Python
美国时尚女装在线:Missguided
2016/12/03 全球购物
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
社团成立邀请函
2014/01/08 职场文书
幼教简历自我评价
2014/01/28 职场文书
作弊检讨书1000字
2014/02/01 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
社区工作者个人总结
2015/02/28 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
Python基础之元组与文件知识总结
2021/05/19 Python
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL