星联网络专注帝国CMS二次功能插件开发-精品网站模板站长代码素材

  • 最近更新
  • 模板:33
  • 记录:12640|
  • 插件:52|
  • 工具:4|
  • 代码:8|
  • 评论:0

dede自定义模型的部分字段无法读取

前言

本文主要讲解《dede自定义模型的部分字段无法读取》的详细内容

新建立了一个独立模型,可是突然发现模型列表中标题不能显示了,仔细分析发现并非完全不能显示,而是凡是带有中文的就不能显示。

然后一步一步分析,发现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版本好像会出问题,但也有可能是配置的问题。

本网刊登的文章均仅代表作者个人观点,并不代表本网立场。文中的论述和观点,敬请读者注意判断。

本文地址:http://www.xlkjgs.com/notes/web/5498.html

以上内容由本站整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

星联网络

星联网络是中国最具实战的互联网创业者的知识服务商,这里有互联网行业动态,网络推广,SEO优化,SEM优化,ESC配置,行业经验分型,互联网项目,微信营销、淘宝客赚钱、新媒体营销、京东运营、跨境电商等众多互联网营销知识分享

站长运营站长必备网站运营之道才能长久发展