• 域名认证
  • 作品:144
  • 案例:19|
  • 教程:7341|
  • 资讯:500|
  • 资源:373|
  • 总访问量:1168644|

导航菜单
酷讯网络工作室_源码交易平台,源码商城,网站定制开发,免费模版下载,网络技术服务,游戏源码,站长教程欢迎你.
织梦dedecms对任意字段截取固定值并且多余部分用省略号代替

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

浏览次数:

作者: 淡淡的风

信息来源: 本站原创

更新日期: 2020-12-24 10:21:45

文章简介

utf8编码下:中文占 3个字节,英文和数字占 1个字节(可变编码)(变长编码)
gbk编码下:所有的中文、英文、数字都占2个字节(定长编码) 例如,有一个字符串,$str = “地方见2142343

  • 正文开始
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)/]

此教程为跟版网原创,欢迎转载。转载请保留版权。

收藏此文 ( ) 打赏本站

如果本文对你有所帮助请打赏本站

  • 打赏方法如下:
  • 支付宝打赏
    支付宝扫描打赏
    微信打赏
    微信扫描打赏

精彩评论