Heim  >  Artikel  >  Backend-Entwicklung  >  几个好用的截取字符串的php函数分享_PHP教程

几个好用的截取字符串的php函数分享_PHP教程

WBOY
WBOYOriginal
2016-07-20 11:14:39895Durchsuche

分享几个好用的PHP 截取字符串函数(支持gb2312和utf-8)。

<?<span php 
</span><span /*</span><span *
**截取中文字符串 
* edit by www.jbxue.com
*</span><span */</span>
<span function</span> mysubstr(<span $str</span>, <span $start</span>, <span $len</span><span ) { 
</span><span $tmpstr</span> = ""<span ; 
</span><span $strlen</span> = <span $start</span> + <span $len</span><span ; 
</span><span for</span>(<span $i</span> = 0; <span $i</span> < <span $strlen</span>; <span $i</span>++<span ) { 
</span><span if</span>(<span ord</span>(<span substr</span>(<span $str</span>, <span $i</span>, 1)) > 0xa0<span ) { 
</span><span $tmpstr</span> .= <span substr</span>(<span $str</span>, <span $i</span>, 2<span ); 
</span><span $i</span>++<span ; 
} </span><span else</span> 
<span $tmpstr</span> .= <span substr</span>(<span $str</span>, <span $i</span>, 1<span ); 
} 
</span><span return</span> <span $tmpstr</span><span ; 
} 
</span>?>

<?<span php 
</span><span /*</span><span *
* 截取utf8字符串
* edit by www.jbxue.com
</span><span */</span>
<span function</span> utf8Substr(<span $str</span>, <span $from</span>, <span $len</span><span ) 
{ 
</span><span return</span> <span preg_replace</span>('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.<span $from</span>.'}'. 
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.<span $len</span>.'}).*#s', 
'$1',<span $str</span><span ); 
} 
</span>?>

<?<span php 
</span><span /*</span><span  
Utf-8、gb2312都支持的汉字截取函数 
cut_str(字符串, 截取长度, 开始长度, 编码); 
编码默认为 utf-8 
开始长度默认为 0 
* by www.jbxue.com
</span><span */</span>

<span function</span> cut_str(<span $string</span>, <span $sublen</span>, <span $start</span> = 0, <span $code</span> = 'UTF-8'<span ) 
{ 
</span><span if</span>(<span $code</span> == 'UTF-8'<span ) 
{ 
</span><span $pa</span> = "/[\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]/"<span ; 
</span><span preg_match_all</span>(<span $pa</span>, <span $string</span>, <span $t_string</span><span );

</span><span if</span>(<span count</span>(<span $t_string</span>[0]) - <span $start</span> > <span $sublen</span>) <span return</span> <span join</span>('', <span array_slice</span>(<span $t_string</span>[0], <span $start</span>, <span $sublen</span>))."..."<span ; 
</span><span return</span> <span join</span>('', <span array_slice</span>(<span $t_string</span>[0], <span $start</span>, <span $sublen</span><span )); 
} 
</span><span else</span><span  
{ 
</span><span $start</span> = <span $start</span>*2<span ; 
</span><span $sublen</span> = <span $sublen</span>*2<span ; 
</span><span $strlen</span> = <span strlen</span>(<span $string</span><span ); 
</span><span $tmpstr</span> = ''<span ;

</span><span for</span>(<span $i</span>=0; <span $i</span>< <span $strlen</span>; <span $i</span>++<span ) 
{ 
</span><span if</span>(<span $i</span>>=<span $start</span> && <span $i</span>< (<span $start</span>+<span $sublen</span><span )) 
{ 
</span><span if</span>(<span ord</span>(<span substr</span>(<span $string</span>, <span $i</span>, 1))>129<span ) 
{ 
</span><span $tmpstr</span>.= <span substr</span>(<span $string</span>, <span $i</span>, 2<span ); 
} 
</span><span else</span><span  
{ 
</span><span $tmpstr</span>.= <span substr</span>(<span $string</span>, <span $i</span>, 1<span ); 
} 
} 
</span><span if</span>(<span ord</span>(<span substr</span>(<span $string</span>, <span $i</span>, 1))>129) <span $i</span>++<span ; 
} 
</span><span if</span>(<span strlen</span>(<span $tmpstr</span>)< <span $strlen</span> ) <span $tmpstr</span>.= "..."<span ; 
</span><span return</span> <span $tmpstr</span><span ; 
} 
}

</span><span $str</span> = "abcd需要截取的字符串"<span ; 
</span><span echo</span> cut_str(<span $str</span>, 8, 0, 'gb2312'<span ); 
</span>?>

<?<span php 
</span><span /*</span><span * 
* @package BugFree 
* 
* 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. 
* @by www.jbxue.com
</span><span */</span> 
<span function</span> sysSubStr(<span $String</span>,<span $Length</span>,<span $Append</span> = <span false</span><span ) 
{ 
</span><span if</span> (<span strlen</span>(<span $String</span>) < = <span $Length</span><span  ) 
{ 
</span><span return</span> <span $String</span><span ; 
} 
</span><span else</span><span  
{ 
</span><span $I</span> = 0<span ; 
</span><span while</span> (<span $I</span> < <span $Length</span><span ) 
{ 
</span><span $StringTMP</span> = <span substr</span>(<span $String</span>,<span $I</span>,1<span ); 
</span><span if</span> ( <span ord</span>(<span $StringTMP</span>) >=224<span  ) 
{ 
</span><span $StringTMP</span> = <span substr</span>(<span $String</span>,<span $I</span>,3<span ); 
</span><span $I</span> = <span $I</span> + 3<span ; 
} 
</span><span elseif</span>( <span ord</span>(<span $StringTMP</span>) >=192<span  ) 
{ 
</span><span $StringTMP</span> = <span substr</span>(<span $String</span>,<span $I</span>,2<span ); 
</span><span $I</span> = <span $I</span> + 2<span ; 
} 
</span><span else</span><span  
{ 
</span><span $I</span> = <span $I</span> + 1<span ; 
} 
</span><span $StringLast</span>[] = <span $StringTMP</span><span ; 
} 
</span><span $StringLast</span> = <span implode</span>("",<span $StringLast</span><span ); 
</span><span if</span>(<span $Append</span><span ) 
{ 
</span><span $StringLast</span> .= "..."<span ; 
} 
</span><span return</span> <span $StringLast</span><span ; 
} 
}

</span><span $String</span> = "book.chinaz.com -- 站长书库、站长教程"<span ; 
</span><span $Length</span> = "18"<span ; 
</span><span $Append</span> = <span false</span><span ; 
</span><span echo</span> sysSubStr(<span $String</span>,<span $Length</span>,<span $Append</span><span ); 
</span>?>

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440270.htmlTechArticle分享几个好用的PHP 截取字符串函数(支持gb2312和utf-8)。 ? mysubstr( , , = "" = + ( = 0; ; ++ ( ( ( , , 1)) 0xa0 .= ( , , 2 ++ .= ( , , 1 ? ? utf8Substr( , , ('#^(?:...
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