在项目开发中,我们常常会遇到英文、中文等字符串截取问题,比如说新闻列表页面需要新闻内容简介,这就要用到字符串截取了。
下面就为大家分享一个THINKPHP中已经准备好的字符串截取函数。
1
2
3
4
5
6
7
8
9
|
# 函数解释:
msubstr( $str , $start =0, $length , $charset =”utf-8″, $suffix =true)
/*
$str:要截取的字符串
$start=0:开始位置,默认从0开始
$length:截取长度
$charset=”utf-8″:字符编码,默认UTF-8
$suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示
*/
|
模版使用:
1
|
{ $vo .title|msubstr=0,5, 'utf-8' ,false}
|
Ps:若是核心版的可能不存在该函数,不用怕,逐风把代码给大家贴出来:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
function msubstr( $str , $start =0, $length , $charset = "utf-8" , $suffix =true)
{
if (function_exists( "mb_substr" )){
if ( $suffix )
return mb_substr( $str , $start , $length , $charset ). "..." ;
else
return mb_substr( $str , $start , $length , $charset );
}
elseif (function_exists( 'iconv_substr' )) {
if ( $suffix )
return iconv_substr( $str , $start , $length , $charset ). "..." ;
else
return iconv_substr( $str , $start , $length , $charset );
}
$re [ 'utf-8' ] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/" ;
$re [ 'gb2312' ] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/" ;
$re [ 'gbk' ] = "/[x01-x7f]|[x81-xfe][x40-xfe]/" ;
$re [ 'big5' ] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/" ;
preg_match_all( $re [ $charset ], $str , $match );
$slice = join( "" , array_slice ( $match [0], $start , $length ));
if ( $suffix ) return $slice . "…" ;
return $slice ;
}
|
以上所述是小编给大家介绍的THINKPHP截取中文字符串函数实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!