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