所有分类
  • 所有分类
  • 网站模板
  • 设计素材
  • 办公素材
  • 站长素材
  • 软件资源

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

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)/]

织梦cms

感谢您阅读这篇织梦dede对任意字段截取固定值并且多余部分用省略号代替文章,希望可以帮助您解决使用织梦cms途中的问题,更多相关织梦cms教程关注我们万条网吧。

文章原文链接:https://www.wantiao.net/36162.html,转载请注明出处。
免责声明:本站资源均来自互联网,仅供研究学习使用,禁止违法违规使用,产生法律纠纷本站概不负责!本站信息来源于网络,版权争议与本站无关。如有侵权请邮件与我们联系处理,敬请谅解!
0

评论0

请先

疫情期间优惠活动!原360元包年VIP,现128元;原588元终身VIP,现158元。随着资源不断增多,随时提价!立即查看
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录