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

    DEDE专题节点ID不能出现重复的解决方法
    POST TIME:2017-11-13 00:35
    在做专题的时候发现个特别郁闷人的事情,
    5个节点,任意一个节点中出现ID重复均被过滤之后写入数据库;
    为此研究了一番,最后发现罪魁祸首就是以下代码:

    if(is_array($ids))
    {
    foreach($ids as $mid)
    {
    $mid = trim($mid);
    if($mid=="") continue;
    if(!isset($arcids[$mid]))
    {
    if($okids=="")
    {
    $okids .= $mid;
    }
    else
    {
    $okids .= ",".$mid;
    }
    $arcids[$mid] = 1;
    }
    }
    }


    其中foreach循环中,有个isset的判断,就是在此过滤了一些重复ID;
    不知道DEDE $arcids这个变量是如何设置的,经过foreach循环之后既然会赋予所有节点的ID均入到数组中。
    为此,我的解决方法是这样的:
    首先将$ids这个数组变量进行去重复处理:

    $ids = array_unique($ids);

    之后将isset改用is_array判断是否是数组
    完整的代码如下:


    $ids = array_unique($ids);
    if(is_array($ids))
    {
    foreach($ids as $mid)
    {
    $mid = trim($mid);
    if($mid=="") continue;
    if(!is_array($arcids[$mid]))
    {
    if($okids=="")
    {
    $okids .= $mid;
    }
    else
    {
    $okids .= ",".$mid;
    }
    $arcids[$mid] = 1;
    }
    }
    }

    不知道如此更改是否会有其他“副作用”!还望大家多多指教!

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

    截屏,微信识别二维码

    微信号:veteran88

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

     打开微信

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