当前位置:Gxlcms > PHP教程 > PHP中英文截取无乱码,包括全角下的字符

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

时间:2021-07-01 10:21:17 帮助过:29人阅读

代码出处: 小墨(自己)
符合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 <= $count) {
  28. $content .= $str[$sing].$str[$sing+1].$str[$sing+2];
  29. }
  30. $sing += 3;
  31. $count++;
  32. }else{
  33. if(!$start || $start <= $count) {
  34. $content .= $str[$sing];
  35. }
  36. $sing++;
  37. $count++;
  38. }
  39. }
  40. return $content;
  41. }

人气教程排行