织梦dede对任意字段截取固定值并且多余部分用省略号代替

织梦教程 强烈建议 2024-02-06 13:24 198 0
  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)/]

时间:(2024-02-06 13:24:57)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!