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

    有关dede静态模板类dede:foreach的使用
    POST TIME:2018-08-09 00:45

    刚刚接触织梦,就从基础看起,希望大家不要见笑,多多鼓励啊 呵呵
    在测试的时候发现静态模板类里面的
    {dede:foreach array=”数组名”} [field:key/] [field:value/] {/dede:foreach}这本标签总不能正常使用,执行后总是返回 [field:key/] [field:value/] [field:key/] [field:value/] ….n个“[field:key/] [field:value/] ”而不是正在的数据,在网上搜了搜,结果大部分都是转载织梦系统的原装帮助文档里面的资料,没有说明此问题,这里有人也遇到了一样的问题,本来想回复他来,可是我是新人,他所在的版块我无权回复,就发一个新帖了,呵呵,扯远了,书归正传!

    为什么会有这样的效果呢,数组名设置后是可以遍历的,而且遍历的次数也是对了,就是数据不能正常显示

    肯定是哪里解析错误了,

    顺着思路往下找,

    最后在include/dedetag.class.php文件中的第578行和579行(版本不一样可能不同,在该文件的AssignSysTag()方法体里面)找到了答案!

    $istr .= preg_replace(“/[field:key([ ]+)/]/is”,$k,$this->CTags[$i]->InnerText);
    $str .= preg_replace(“/[field:value([ ]+)/]/is”,$v,$istr);

    问题就在正则表达式上,主要是这部分([ ]+)

    说明在 [field:key 与 /] 之间可以包含换行、制表符、空格,但是不能什么都没有

    也就是说 [field:key/]是不对的

    必须是

    [field:key /](空格的)

    [field:key /](制表符的)

    [field:key
    /](换行的)

    这样就解决问题了,我测试是可以的。

    =============================
    希望对需要的人可以解决问题!


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

    截屏,微信识别二维码

    微信号:veteran88

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

     打开微信

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