gpt4 book ai didi

php中文字符串截取多种方法汇总

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php中文字符串截取多种方法汇总由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1. 截取GB2312中文字符串 。

php" id="highlighter_574569">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
< ?php
//截取中文字符串
function mysubstr( $str , $start , $len ) {
   $tmpstr = "" ;
   $strlen = $start + $len ;
   for ( $i = 0; $i < $strlen ; $i ++) {
     if (ord( substr ( $str , $i , 1)) > 0xa0) {
       $tmpstr .= substr ( $str , $i , 2);
       $i ++;
     } else
       $tmpstr .= substr ( $str , $i , 1);
   }
   return $tmpstr ;
}
?>

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

?
1
2
3
4
5
6
7
8
9
10
<?php
< ?php
//截取utf8字符串
function utf8Substr( $str , $from , $len )
{
   return preg_replace( '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,' . $from . '}' .
             '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,' . $len . '}).*#s' ,
             '$1' , $str );
}
?>

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
< ?php
/*
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/
 
function cut_str( $string , $sublen , $start = 0, $code = 'UTF-8' )
{
   if ( $code == 'UTF-8' )
   {
     $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]/" ;
     preg_match_all( $pa , $string , $t_string );
 
     if ( count ( $t_string [0]) - $start > $sublen ) return join( '' , array_slice ( $t_string [0], $start , $sublen )). "..." ;
     return join( '' , array_slice ( $t_string [0], $start , $sublen ));
   }
   else
   {
     $start = $start *2;
     $sublen = $sublen *2;
     $strlen = strlen ( $string );
     $tmpstr = '' ;
 
     for ( $i =0; $i < $strlen ; $i ++)
     {
       if ( $i >= $start && $i < ( $start + $sublen ))
       {
         if (ord( substr ( $string , $i , 1))>129)
         {
           $tmpstr .= substr ( $string , $i , 2);
         }
         else
         {
           $tmpstr .= substr ( $string , $i , 1);
         }
       }
       if (ord( substr ( $string , $i , 1))>129) $i ++;
     }
     if ( strlen ( $tmpstr )< $strlen ) $tmpstr .= "..." ;
     return $tmpstr ;
   }
}
 
$str = "abcd需要截取的字符串" ;
echo cut_str( $str , 8, 0, 'gb2312' );
?>

4. BugFree 的字符截取函数 。

  。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
< ?php
/**
  * @package   BugFree
  * @version   $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
  *
  *
  * Return part of a string(Enhance the function substr())
  *
  * @author         Chunsheng Wang <wwccss@263.net>
  * @param string $String the string to cut.
  * @param int   $Length the length of returned string.
  * @param booble $Append whether append "...": false|true
  * @return string      the cutted string.
  */
function sysSubStr( $String , $Length , $Append = false)
{
   if ( strlen ( $String ) < = $Length )
   {
     return $String ;
   }
   else
   {
     $I = 0;
     while ( $I < $Length )
     {
       $StringTMP = substr ( $String , $I ,1);
       if ( ord( $StringTMP ) >=224 )
       {
         $StringTMP = substr ( $String , $I ,3);
         $I = $I + 3;
       }
       elseif ( ord( $StringTMP ) >=192 )
       {
         $StringTMP = substr ( $String , $I ,2);
         $I = $I + 2;
       }
       else
       {
         $I = $I + 1;
       }
       $StringLast [] = $StringTMP ;
     }
     $StringLast = implode( "" , $StringLast );
     if ( $Append )
     {
       $StringLast .= "..." ;
     }
     return $StringLast ;
   }
}
 
$String = "17test.info 走在中国自动化测试的前沿" ;
$Length = "18" ;
$Append = false;
echo sysSubStr( $String , $Length , $Append );
?>

以上就是本文的全部内容,希望对大家有所帮助,希望大家继续关注我的最新内容.

最后此篇关于php中文字符串截取多种方法汇总的文章就讲到这里了,如果你想了解更多关于php中文字符串截取多种方法汇总的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com