婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 網站建設 > 建站知識 > 織夢dedecms對任意字段截取固定值并且多余部分用

織夢dedecms對任意字段截取固定值并且多余部分用

POST TIME:2017-11-12 23:52

utf8編碼下:中文占 3個字節,英文和數字占 1個字節(可變編碼)(變長編碼)
gbk編碼下:所有的中文、英文、數字都占2個字節(定長編碼)
例如,有一個字符串,$str = “地方見21423435過很多苦法dsfsdfsdgsd規和地方給iu”
如果是gbk編碼:截取5個字符 ,相當于截取10個字節 substr()截取的是字節數
如果是utf8編碼的話:截取5個字符:不知道截取多少個字節,因為不確定是中文還是英文
那么怎么判斷呢?
通常根據一個字符的第一個字節,如果這個字節 的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)/]

此教程為跟版網原創,歡迎轉載。轉載請保留版權。



上一篇:如何讓織夢{dede:channel}無子欄目不顯示同級欄目

下一篇:織夢Dedecms上傳中文文件不自動改名,保持原文件

收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 靖江市| 郓城县| 波密县| 武城县| 宁强县| 榆中县| 淳化县| 富阳市| 古田县| 沾化县| 闸北区| 兰西县| 阳新县| 连江县| 德化县| 深泽县| 江永县| 河南省| 江阴市| 菏泽市| 遵化市| 大邑县| 阳东县| 于田县| 文成县| 竹溪县| 涞水县| 万全县| 龙江县| 伊春市| 布尔津县| 丰城市| 广元市| 阿拉善左旗| 开封市| 新田县| 长治县| 大安市| 潮安县| 莒南县| 泾阳县|