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的开合式多级菜单程序
Oct 09 PHP
PHP操作xml代码
Jun 17 PHP
php在项目中寻找代码的坏味道(综艺命名)
Jul 19 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
php中动态修改ini配置
Oct 14 PHP
php获取url参数方法总结
Nov 13 PHP
php获取文件名称和扩展名的方法
Feb 07 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
PHP设计模式之单例模式原理与实现方法分析
Apr 25 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 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中字符集转换iconv函数使用总结
2014/10/11 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
js打造数组转json函数
2015/01/14 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
在Python下尝试多线程编程
2015/04/28 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Python如何在DataFrame增加数值
2020/02/14 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
python利用递归方法实现求集合的幂集
2020/09/07 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
市场营销大学生职业规划书
2014/02/25 职场文书
英语教研活动总结
2014/07/02 职场文书
安全生产年活动总结
2014/08/29 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
公民代理授权委托书
2014/09/24 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
慰问信模板
2015/02/14 职场文书
中学生自我评价2015
2015/03/03 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python