織夢dedecms對任意字段截取固定值并且多余部分用
導讀:織夢文章織夢文章utf8編碼下:中文占 3個字節,英文和數字占 1個字節(可變編碼)(變長編碼) gbk編碼下:所有的中文、英文、數字都占2個字節(定長編碼) 例如,有一個字符織夢模板網dede5.7模板。
utf8編碼下:中文占 3個字節,英文和數字占 1個字節(可變編碼)(變長編碼)
gbk編碼下:所有的中文、英文、數字都占2個字節(定長編碼)
例如,有一個字符串,$str = “地方見21423435過很多苦法dsfsdfsdgsd規和地方給iu”
如果是gbk編碼:截取5個字符 ,相當于截取10個字節 substr()截取的是字節數
如果是utf8編碼的話:截取5個手機模板dede字符:不知道截取多少個字節,因為不確定是中文還是英文
那么怎么判斷呢?
通常根據一個字符的第一個字節,如果這個字節 的ASCII碼 大夢織模板于224 占3個字節,如果第一個字節的ASCII碼,大于192 占2個字節,如果第一個字節的ASCII碼小于192,占1個字節
在include下的extend.func.php文件中加入以下函數:
function GetPartStr($str,$len)//$str字符串 $len 控制長度
{
$one=0;
$partstr='';
for($i=0;$i<$len;$i++)
{ $sstr=substr($str,$one,1);
if(ord($sstr)>224){
$partstr.=substr($str,$one,3);
$one+=3;
}elseif(ord($sstr)>192){
$partstr.=substr($str,$one,2);
$one+=2;
}elseif(ord($sstr)<192){
$partstr.=substr($str,$one,1);
$one+=1;
}
}
if(strlen($str)<$one){
return $partstr;}else{
return $partstr.'....';
}
}
調用方法如下,比如要對電話號碼的一個字段進行截取,前三位顯示,后面的用....代替織夢模板網,寫法:
[field:tel function=GetPartStr(@me,3)/]
此教程為跟版網原創,歡迎轉載。轉載請保留版權。相關織夢模板網dede5.7模板。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-07-18 ,文章織夢dedecms對任意字段截取固定值并且多余部分用主要講述省略號,字段,織夢網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_28799.html