php strlen与mb_strlen字符串长度函数用法示例

前端之家收集整理的这篇文章主要介绍了php strlen与mb_strlen字符串长度函数用法示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对strlen与mb_strlen字符串长度函数感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!
PHP的都知道strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。 先看这样一段代码吧(先决条件是:字符编码为UTF-8):
  1. /**
  2. * strlen与mb_strlen字符串长度函数
  3. *
  4. * @param
  5. * @arrange 512-笔记网: 512Pic.com
  6. **/
  7. <?
  8. $str = '懂PHP的都知道strlen与mb_strlen是求字符串长度的函数';
  9. echo strlen($str)'.<br />'.mb_strlen($str,'utf-8');
  10. /*** 来自编程之家 jb51.cc(jb51.cc) ***/
运行上述代码,返回值如下: 66 34 怎么样?strlen中,中文是三个字节的长度,英文则是一个字节的长度!mb_strlen中,都被计算为一字节的长度!所以,我们有时候用substr来截取UTF-8中文字符串的时候,经常会出现乱码,就是这个原因了! 下面提供一个截取UTF-8字符串的函数
  1. /**
  2. * strlen与mb_strlen字符串长度函数
  3. *
  4. * @param
  5. * @arrange 512-笔记网: 512Pic.com
  6. **/
  7. function cutstr($sourcestr,$cutlength){
  8. $returnstr = '';
  9. $i = 0;
  10. $n = 0;
  11. $str_length = strlen($sourcestr);
  12. $mb_str_length = mb_strlen($sourcestr,'utf-8');
  13. while(($n < $cutlength) && ($i <= $str_length)){
  14. $temp_str = substr($sourcestr,$i,1);
  15. $ascnum = ord($temp_str);
  16. if($ascnum >= 224){
  17. $returnstr = $returnstr.substr($sourcestr,3);
  18. $i = $i + 3;
  19. $n++;
  20. }
  21. elseif($ascnum >= 192){
  22. $returnstr = $returnstr.substr($sourcestr,2);
  23. $i = $i + 2;
  24. $n++;
  25. }
  26. elseif(($ascnum >= 65) && ($ascnum <= 90)){
  27. $returnstr = $returnstr.substr($sourcestr,1);
  28. $i = $i + 1;
  29. $n++;
  30. }
  31. else{
  32. $returnstr = $returnstr.substr($sourcestr,1);
  33. $i = $i + 1;
  34. $n = $n + 0.5;
  35. }
  36. }
  37. if ($mb_str_length > $cutlength){
  38. $returnstr = $returnstr . "...";
  39. }
  40. return $returnstr;
  41. }
  42. /*** 来自编程之家 jb51.cc(jb51.cc) ***/
使用例子:
  1. /**
  2. * strlen与mb_strlen字符串长度函数
  3. *
  4. * @param
  5. * @arrange 512-笔记网: 512Pic.com
  6. **/
  7. <?
  8. $str = '有效期最长三个月,超过有效期系统将自动删除本条信息';
  9. //echo strlen($str);
  10. //echo '<hr />'.mb_strlen($str,'utf-8');
  11. echo '<hr />'.$str;
  12. echo '<hr />'.cutstr($str,24);
  13. /*** 来自编程之家 jb51.cc(jb51.cc) ***/

猜你在找的PHP相关文章