《PHP實戰:php截取中文字符串函數實例》要點:
本文介紹了PHP實戰:php截取中文字符串函數實例,希望對您有用。如果有疑問,可以聯系我們。
PHP應用本文實例講述了php截取中文字符串函數.分享給大家供大家參考.具體實現辦法如下:
代碼如下:
<?php
//中文字符串截取
function substr_zh($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))."...";
?? //array_slice()在數組中根據條件取出一段值,參數(數組,開始位置,[長度])
? }else{
?? 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){
??? //ord():返回字符串第一個字符的ASCII值
??? //substr():返回字符串的一部分
???? $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;
?}
}
$string ="頂置車頂起困境上盯協押畏奇才趄肯困楞右腳可愛有";
echo substr_zh($string,10,0,'gb2312');
?>
PHP應用希望本文所述對大家的php程序設計有所贊助.
維易PHP培訓學院每天發布《PHP實戰:php截取中文字符串函數實例》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/12204.html