欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP中英文截取无乱码,包括全角下的字符

程序员文章站 2022-05-23 20:19:30
...
代码出处: 小墨(自己)
符合UTF-8下,如果GBK下
改为 $content .= $str[$sing].$str[$sing+1];
$sing += 3; 改为 $sing += 2;
  1. /**
  2. * 中英文截取
  3. * @param string 要截取的字符串
  4. * @param string 要截取的长度(超过总长度 按总长度计算)
  5. * @param [string] (可选)开始位置(第一个为0)
  6. * @return string
  7. * @author 小墨 244349067@qq.com
  8. */
  9. function mixSubstr($str, $length, $start=FALSE)
  10. {
  11. if( ! $length){
  12. return false;
  13. }
  14. $strlen = strlen($str);
  15. $content = '';
  16. $sing = 0;
  17. $count = 0;
  18. if($length > $strlen) {
  19. $length = $strlen;
  20. }
  21. if($start >= $strlen) {
  22. return false;
  23. }
  24. while($length != ($count-$start))
  25. {
  26. if(ord($str[$sing]) > 0xa0) {
  27. if(!$start || $start $content .= $str[$sing].$str[$sing+1].$str[$sing+2];
  28. }
  29. $sing += 3;
  30. $count++;
  31. }else{
  32. if(!$start || $start $content .= $str[$sing];
  33. }
  34. $sing++;
  35. $count++;
  36. }
  37. }
  38. return $content;
  39. }
复制代码