婷婷综合国产,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
主站蜘蛛池模板: 合肥市| 扶绥县| 湘潭县| 神池县| 双鸭山市| 绿春县| 蓬安县| 霍城县| 龙陵县| 盐池县| 汝阳县| 台中县| 噶尔县| 根河市| 伊宁市| 连云港市| 罗山县| 固安县| 新巴尔虎左旗| 大方县| 昭通市| 胶南市| 金乡县| 许昌县| 内黄县| 苏尼特左旗| 沾化县| 山西省| 伊宁县| 将乐县| 乌恰县| 安岳县| 陕西省| 河源市| 邯郸县| 六安市| 泰兴市| 普洱| 左权县| 手机| 巴青县|