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 相关文章推荐
php 301转向实现代码
Sep 18 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
php+mysql事务rollback&amp;commit示例
Feb 08 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
Aug 01 PHP
php的zip解压缩类pclzip使用示例
Mar 14 PHP
smarty中post用法实例
Nov 28 PHP
php实现粘贴截图并完成上传功能
May 17 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
php中各种定义变量的方法小结
Oct 18 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 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
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
javascript web对话框与弹出窗口
2009/02/22 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
pandas表连接 索引上的合并方法
2018/06/08 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
python绘制圆柱体的方法
2018/07/02 Python
python实现Zabbix-API监控
2018/09/17 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
python里 super类的工作原理详解
2019/06/19 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
.net工程师笔试题
2012/06/09 面试题
Ajxa常见问题都有哪些
2014/03/26 面试题
办公室人员先进事迹
2014/01/27 职场文书
新闻编辑自荐书范文
2014/02/12 职场文书
工程技术员岗位职责
2014/03/02 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android