本文实例讲述了php截取中文字符串函数。分享给大家供大家参考。具体实现方法如下:
<?php<br />//中文字符串截取<br />function substr_zh($string,$sublen,$start=0,$code='UTF-8'){<br /> if($code=='UTF-8'){<br /> $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]/";<br /> preg_match_all($pa,$string,$t_string);<br /> if(count($t_string[0])-$start > $sublen){<br /> return join('',array_slice($t_string[0],$start,$sublen))."...";<br /> //array_slice()在数组中根据条件取出一段值,参数(数组,开始位置,[长度])<br /> }else{<br /> return join('',array_slice($t_string[0],$start,$sublen));<br /> }<br /> }else{<br /> $start = $start*2;<br /> $sublen = $sublen*2;<br /> $strlen = strlen($string);<br /> $tmpstr = '';<br /> for($i=0;$i<$strlen;$i++){<br /> if($i>$start && $i<($start+$sublen)){<br /> if(ord(substr($string,$i,1))>129){<br /> //ord():返回字符串第一个字符的ASCII值<br /> //substr():返回字符串的一部分<br /> $tmpstr .= substr($string,$i,2);<br /> }else{<br /> $tmpstr .= substr($string,$i,1);<br /> }<br /> }<br /> if(ord(substr($string,$i,1))>129){<br /> $i++;<br /> }<br /> if(strlen($tmpstr)<$strlen){<br /> $tmpstr .= "...";<br /> }<br /> }<br /> return $tmpstr;<br /> }<br />}<br />$string ="<i style="color:transparent">本#文来源gaodai$ma#com搞$$代**码网$</i><button>搞代gaodaima码</button>顶置车顶起困境檲上盯协押畏奇才趄肯困楞右脚可爱有";<br />echo substr_zh($string,10,0,'gb2312');<br />?>
希望本文所述对大家的php程序设计有所帮助。