织梦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对任意字段截取固定值并且多余部分用主要讲述省略号,字段,织梦网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_28799.html