• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

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

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

    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!