婷婷综合国产,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
主站蜘蛛池模板: 栾川县| 肥西县| 青州市| 宾川县| 临泽县| 常熟市| 西宁市| 富宁县| 黑水县| 临桂县| 无棣县| 海安县| 杭锦后旗| 绥芬河市| 甘泉县| 四平市| 阜新市| 涿鹿县| 昔阳县| 娱乐| 孟州市| 双城市| 云霄县| 新昌县| 元谋县| 进贤县| 电白县| 耿马| 鄂托克前旗| 公主岭市| 石柱| 信丰县| 云浮市| 合山市| 师宗县| 漠河县| 开封市| 大名县| 永吉县| 龙里县| 雷山县|