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

    织梦dedecms自定义模型的部分字段无法读取
    POST TIME:2021-05-24 03:00
    新建立了一个独立模型,可是突然发现模型列表中标题不能显示了,仔细分析发现并非完全不能显示,而是凡是带有中文的就不能显示。 

    然后一步一步分析,发现dede在显示独立模型文章列表时对独立模型的每一个字段都经过了ChannelUnit->MakeField方法的处理,原因是独立模型文章表中,凡是联动类型字段都保存的是数值,因此,需要将其转换成对应的名称,除此之外还进行了一些其他类型字段的处理。其中包括对于type是text的字段,那dedecms 会经过 HtmlReplace()方法进行处理。 
    function MakeField($fname, $fvalue, $addvalue='') 

    //处理各种数据类型 
    $ftype = $this->ChannelFields[$fname]['type']; 
    if($fvalue=='') 

    if($ftype != 'checkbox') $fvalue = $this->ChannelFields[$fname]['default']; 

    if($ftype=='text') 

    $fvalue = HtmlReplace($fvalue); 

    ...... 
    问题就出在HtmlReplace方法中。某些时候HtmlReplace的中文转换是有问题的。 

    HtmlReplace 

    (>=DedeCMS 5.5) 

    函数名:HtmlReplace 

    功能:去除html中不规则内容字符 

    参数: 

    $str='' 需要处理的字符串 

    $rptype=0 返回类型 

    $rptype = 0 表示仅替换 html标记 

    $rptype = 1 表示替换 html标记同时去除连续空白字符 

    $rptype = 2 表示替换 html标记同时去除所有空白字符 

    $rptype = -1 表示仅替换 html危险的标记 

    返回值: 

    格式化后的字符串 

    注:其实貌似HtmlReplace出现问题与否跟php的版本是有关系的,最新的php版本好像会出问题,但也有可能是配置的问题。
    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

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

     打开微信

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