1. function ccStrLen($str) #计算中英文混合字符串的长度
  2. {
  3. $ccLen=0;
  4. $ascLen=strlen($str);
  5. $ind=0;
  6. $hasCC=ereg("[xA1-xFE]",$str); #判断是否有汉字
  7. $hasAsc=ereg("[x01-xA0]",$str); #判断是否有ASCII字符
  8. if($hasCC && !$hasAsc) #只有汉字的情况
  9. return strlen($str)/2;
  10. if(!$hasCC && $hasAsc) #只有Ascii字符的情况
  11. return strlen($str);
  12. for($ind=0;$ind<$ascLen;$ind++)
  13. {
  14. if(ord(substr($str,$ind,1))>0xa0)
  15. {
  16. $ccLen++;
  17. $ind++;
  18. }
  19. else
  20. {
  21. $ccLen++;
  22. }
  23. }
  24. return $ccLen;
  25. }

  

  1. function ccStrLeft($str,$len) #从左边截取中英文混合字符串
  2. {
  3. $ascLen=strlen($str); if($ascLen<=$len) return $str;
  4. $hasCC=ereg("[xA1-xFE]",$str); #同上
  5. $hasAsc=ereg("[x01-xA0]",$str);
  6. if(!$hasCC) return substr($str,0,$len);
  7. if(!$hasAsc)
  8. if($len & 0x01) #如果长度是奇数
  9. return substr($str,0,$len+$len-2);
  10. else
  11. return substr($str,0,$len+$len);
  12. $cind=0;$flag=0;
  13. while($cind<$ascLen)
  14. {
  15. if(ord(substr($str,$cind,1))<0xA1) $flag++;
  16. $cind++;
  17. }
  18. if($flag & 0x01)
  19. return substr($str,0,$len);
  20. else
  21. return substr($str,0,$len-1);
  22. }

  

php统计中英文混合的文章字数的更多相关文章

  1. php计算中英文混合或中文字符串的字数

    转载来源链接: http://blog.csdn.net/hueise_h/article/details/22920937 php的strlen和mb_strlen用于统计字符个数.中英文混合的字符 ...

  2. LaTeX统计文章字数

    今天学会了用LaTeX命令统计文章字数,命令如下: textcount doc_full_path.tex 效果如下:

  3. Lua截取utf-8编码的中英文混合字符串

    参考博客:UTF8字符串在lua的截取和字数统计[转载] 需求 按字面个数来截取子字符串 函数(字符串, 开始位置, 截取长度) utf8sub(,) = 好1世界哈 utf8sub(,) = 你好1 ...

  4. 用C#截取指定长度的中英文混合字符串

    很早以前写过一篇文章(用C#截取指定长度的中英文混合字符串),但是对性能没有测试,有人说我写的这个方法性能有问题,后来想,可能真会有BT之需求要求传入一个几万K甚至几M体积的字符串进来,那将会影响正则 ...

  5. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  6. C#与JS实现 获取指定字节长度 中英文混合字符串 的方法

    平时在作数据库插入操作时,如果用 INSERT 语句向一个varchar型字段插入内容时,有时会因为插入的内容长度超出规定的长度而报错. 尤其是插入中英文混合字符串时,SQL Server中一般中文要 ...

  7. 【目录】Matlab和C#混合编程文章目录

    本博客所有文章分类的总目录链接:[总目录]本博客博文总目录-实时更新 1.Matlab和C#混合编程文章目录 9.接触Matlab10年后的一个总结,随时使用Matlab要掌握的一些要点 8.国内第一 ...

  8. 【代码笔记】iOS-判断中英文混合的字符长度的两种方法

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

  9. C++语言,统计一篇英文文章中的单词数(用正则表达式实现)

    下面的例子展示了如何在C++11中,利用regex_search()统计一篇英文文章中的单词数: #include <iostream> #include <regex> #i ...

随机推荐

  1. Map.putAll()用法

    import Java.util.HashMap; public class Map_putAllTest {public static void main(String[] args){   //两 ...

  2. react-navigation 使用详解(转载)

    上篇博客和大家分享了关于React Native jsBundle预加载,界面启动优化的内容,详情可点击: 基于最新版本React Native实现JsBundle预加载,界面秒开优化 一.开源库介绍 ...

  3. 打印GBK、GB2312字符集全字符

    根据编码表填充数据就可以了~~~~(>_<)~~~~~\(≧▽≦)/~啦啦啦 #include <stdio.h> #include <stdlib.h> #inc ...

  4. Angular 组件

    1 2 change是TimepickerDemoCtrl上的,mytime在timepicker内部改变生效就会触发 3 timepicker内部绑定TimepickerDemoCtrl对值的监控 ...

  5. [LeetCode&Python] Problem 292. Nim Game

    You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...

  6. JSON JAVA 总结

    1.如下是我所用json第三方jar包的maven坐标 <!--可引用的jar--> <dependency> <groupId>net.sf.json-lib&l ...

  7. ajax遍历数组对象

    success: function(data){ console.log(data); for (var warn in data) { alert(data[warn].kh_lxr); } } d ...

  8. bulma入门

    http://www.ruanyifeng.com/blog/2017/10/bulma.html

  9. A Spy in the Metro(UVA 1025 ACM/ICPC World Finals2003)

    ---恢复内容开始--- 题意:有n(2<=n<=50)个车站,从左到右编号为1~n,有M1辆列车从第1站向右开,还有M2辆列车从第N站向左开.在时刻0,间谍从第1站出发,目的是在时刻T( ...

  10. 《DSP using MATLAB》Problem 5.35

    余弦序列的谱,原始频率w0会泄露到其它频率处. 从其它书中找到的证明过程: 代码: %% +++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...