PHP 统计实时统计汉字个数和区别

原创 2016年08月30日 18:00:14

1、PHP 中如何正确统计中文字数?这个是困扰我很久的问题,PHP 中有很多函数可以计算字符串的长度,比如下面的例子,分别使用了 strlenmb_strlenmb_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中处理汉字字符串长度:strlen和mb_strlen

今天正式开始学习PHP了,不过一不小心发现了一个PHP独特的地方:PHP在处理包含汉字的字符串时要特别注意。 比如 ...

PHP 中如何自动计算中文字数?

PHP 中如何准确核算中文字数?这个是困惑我好久的疑问,PHP 中有许多函数能够核算字符串的长度,比方下面的比如,分别使用了 strlen,mb_strlen,mb_strwidth 这个三个函数去测...

PHP:计算字符串中汉字的个数、正确计算字符串的长度

也许很多phper不知道,PHP内置的字符串长度函数strlen()无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UT...

php如何统计下载成功次数

我这边大概说一下思路。我们这边直接使用php进行文件的下载直接用header 不交给web server提供下载。当程序关闭的时候也就是说这个用户目前下载的这个东西已经是下载完成了。然后我们这边可以进...

php统计所有字符在字符串中出现的次数

效果如图 算法: 循环一次字符串(本例的$str),把出现过的字符串记录在一个数组(如本例的$strRecord)内,如果已经此记录函数已经有,则不记录; 在每个字符...

统计名著中汉字出现频率

统计名著中汉字出现频率统计文本中每个汉字出现的次数,不同的汉字数,汉字的重复率 因为最近发现成人英语掌握的词汇量大概是2-3万(有个词汇测试网站的数据); 而常用的汉字是5000字,我想统计下读《三国...

C#练习——统计整型数组中不重复数字的个数、将普通日期格式转换成汉字日期格式、在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst...

统计字符串中汉字的个数

用正则表达式统计字符串中汉字的个数
  • sanqima
  • sanqima
  • 2014年05月20日 15:34
  • 2488

位运算—统计文本文件中汉字的个数

声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。     C语言进行底层开发时经常会用到位运算,比如操作系统中的各种描述符,不同的位代表着不同的含义,经常需要按位赋值。关于位运算...
  • bufanq
  • bufanq
  • 2016年04月01日 09:31
  • 522

统计汉字笔画数的软件源码

  • 2011年04月09日 18:53
  • 13KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP 统计实时统计汉字个数和区别
举报原因:
原因补充:

(最多只允许输入30个字)