Heim > Backend-Entwicklung > PHP-Tutorial > php字符串截取的代码学习

php字符串截取的代码学习

WBOY
Freigeben: 2016-07-25 09:10:29
Original
918 Leute haben es durchsucht
  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. ?>
复制代码


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage