php字符串截取的代码学习

WBOY
发布: 2016-07-25 09:10:29
原创
898 人浏览过
  1. //截取utf8字符串
  2. function utf8Substr($str, $from, $len)
  3. {
  4. return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
  5. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
  6. '$1',$str);
  7. }
  8. ?>
复制代码

2、UTF-8、GB2312都支持的汉字截取函数

  1. function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
  2. {
  3. if($code == 'UTF-8')
  4. {
  5. $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
  6. preg_match_all($pa, $string, $t_string);
  7. if(count($t_string[0])- $start > $sublen)return join('', array_slice($t_string[0], $start, $sublen))."...";
  8. return join('', array_slice($t_string[0], $start, $sublen));
  9. }
  10. else
  11. {
  12. $start = $start*2;
  13. $sublen = $sublen*2;
  14. $strlen = strlen($string);
  15. $tmpstr = '';
  16. for($i=0;$i {
  17. if($i>=$start && $i {
  18. if(ord(substr($string, $i, 1))>129)
  19. {
  20. $tmpstr.= substr($string, $i, 2);
  21. }
  22. else
  23. {
  24. $tmpstr.= substr($string, $i, 1);
  25. }
  26. }
  27. if(ord(substr($string, $i, 1))>129)$i++;
  28. }
  29. if(strlen($tmpstr)return $tmpstr;
  30. }
  31. }
  32. $str = "abcd需要截取的字符串";
  33. echo cut_str($str, 8, 0, 'gb2312');
  34. ?>
复制代码

3、BugFree 的字符截取函数

  1. function sysSubStr($String,$Length,$Append = false)
  2. {
  3. if (strlen($String) {
  4. return $String;
  5. }
  6. else
  7. {
  8. $I = 0;
  9. while ($I {
  10. $StringTMP = substr($String,$I,1);
  11. if (ord($StringTMP)>=224 )
  12. {
  13. $StringTMP = substr($String,$I,3);
  14. $I = $I + 3;
  15. }
  16. elseif(ord($StringTMP)>=192 )
  17. {
  18. $StringTMP = substr($String,$I,2);
  19. $I = $I + 2;
  20. }
  21. else
  22. {
  23. $I = $I + 1;
  24. }
  25. $StringLast[]= $StringTMP;
  26. }
  27. $StringLast = implode("",$StringLast);
  28. if($Append)
  29. {
  30. $StringLast .= "...";
  31. }
  32. return $StringLast;
  33. }
  34. }
  35. $String = "CodeBit.cn -- 简单、精彩、通用";
  36. $Length = "18";
  37. $Append = false;
  38. echo sysSubStr($String,$Length,$Append);
  39. ?>
复制代码


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