Heim >Backend-Entwicklung >PHP-Tutorial >php字符串截取方法大全 php截取字符串四个例子

php字符串截取方法大全 php截取字符串四个例子

WBOY
WBOYOriginal
2016-07-25 08:51:331072Durchsuche
  1. //截取中文字符串
  2. function mysubstr($str, $start, $len) {
  3. $tmpstr = "";
  4. $strlen = $start + $len;
  5. for($i = 0; $i if(ord(substr($str, $i, 1)) --> 0xa0) {
  6. $tmpstr .= substr($str, $i, 2);
  7. $i++;
  8. } else
  9. $tmpstr .= substr($str, $i, 1);
  10. }
  11. return $tmpstr;
  12. }
  13. ?>
复制代码

2、截取utf8编码的多字节字符串

  1. //截取utf8字符串
  2. function utf8Substr($str, $from, $len) {
  3. return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str);
  4. } ?>
复制代码

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

  1. /*
  2. Utf-8、gb2312都支持的汉字截取函数 cut_str(字符串, 截取长度, 开始长度, 编码); 编码默认为 utf-8 开始长度默认为 0
  3. */
  4. function cut_str($string, $sublen, $start = 0, $code = 'UTF-8') {
  5. if($code == 'UTF-8') {
  6. $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]/";
  7. preg_match_all($pa, $string, $t_string);
  8. if(count($t_string[0]) - $start --> $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
  9. return join('', array_slice($t_string[0], $start, $sublen));
  10. }
  11. else
  12. {
  13. $start = $start*2;
  14. $sublen = $sublen*2;
  15. $strlen = strlen($string);
  16. $tmpstr = '';
  17. for($i=0; $i=$start && $i129)
  18. {
  19. $tmpstr.= substr($string, $i, 2);
  20. }
  21. else
  22. {
  23. $tmpstr.= substr($string, $i, 1);
  24. }
  25. }
  26. if(ord(substr($string, $i, 1))>129) $i++;
  27. }
  28. if(strlen($tmpstr)
复制代码

4、BugFree 的字符截取函数

  1. /**
  2. * @package BugFree
  3. * @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
  4. *
  5. *
  6. * Return part of a string(Enhance the function substr())
  7. *
  8. * @author Chunsheng Wang
  9. * @param string $String the string to cut.
  10. * @param int $Length the length of returned string.
  11. * @param booble $Append whether append "...": false|true
  12. * @return string the cutted string.
  13. */
  14. function sysSubStr($String,$Length,$Append = false)
  15. {
  16. if (strlen($String) return $String;
  17. } else {
  18. $I = 0;
  19. while ($I $StringTMP = substr($String,$I,1);
  20. if ( ord($StringTMP) >=224 )
  21. {
  22. $StringTMP = substr($String,$I,3);
  23. $I = $I + 3;
  24. }
  25. elseif( ord($StringTMP) >=192 )
  26. {
  27. $StringTMP = substr($String,$I,2);
  28. $I = $I + 2;
  29. }
  30. else
  31. {
  32. $I = $I + 1;
  33. }
  34. $StringLast[] = $StringTMP;
  35. }
  36. $StringLast = implode("",$StringLast);
  37. if($Append)
  38. {
  39. $StringLast .= "...";
  40. }
  41. return $StringLast;
  42. }
  43. }
  44. $String = "CodeBit.cn -- 简单、精彩、通用";
  45. $Length = "18";
  46. $Append = false;
  47. echo sysSubStr($String,$Length,$Append);
  48. ?>
复制代码


Stellungnahme:
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