首页 > 后端开发 > php教程 > php截取utf8或gbk编码中英文字符串

php截取utf8或gbk编码中英文字符串

WBOY
发布: 2016-07-25 08:53:51
原创
913 人浏览过
  1. //字符串截取

  2. $a = "s@@你好";
  3. var_dump(strlen_weibo($a,'utf-8'));
  4. 结果输出为8,其中字母s计数为1,全角@计数为2,半角@计数为1,两个中文计数为4。源码如下:
  5. //截取字符串的函数代码

  6. function strlen_weibo($string, $charset='utf-8')
  7. {
  8. $n = $count = 0;
  9. $length = strlen($string);
  10. if (strtolower($charset) == 'utf-8')
  11. {
  12. while ($n {
  13. $currentByte = ord($string[$n]);
  14. if ($currentByte == 9 ||
  15. $currentByte == 10 ||
  16. (32 {
  17. $n++;
  18. $count++;
  19. } elseif (194 {
  20. $n += 2;
  21. $count += 2;
  22. } elseif (224 {
  23. $n += 3;
  24. $count += 2;
  25. } elseif (240 {
  26. $n += 4;
  27. $count += 2;
  28. } elseif (248 {
  29. $n += 5;
  30. $count += 2;
  31. } elseif ($currentByte == 252 || $currentByte == 253)
  32. {
  33. $n += 6;
  34. $count += 2;
  35. } else
  36. {
  37. $n++;
  38. $count++;
  39. }
  40. if ($count >= $length)
  41. {
  42. break;
  43. }
  44. }
  45. return $count;
  46. } else
  47. {
  48. for ($i = 0; $i {
  49. if (ord($string[$i]) > 127)
  50. {
  51. $i++;
  52. $count++;
  53. }
  54. $count++;
  55. }
  56. return $count;
  57. }
  58. }
复制代码


来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板