有关dede静态模板类dede:foreach的使用

会员:虎哥 分享 更新时间: 2020-06-03 共 514 人阅读 投诉/版权异议
ET资源温馨提示: 刚刚接触织梦dedecms,就从基础看起,希望大家不要见笑,多多鼓励啊 呵呵。 在测试的时候发现静态模板类里面的 。 {dede:foreach array=”数组
ET资源正文:
刚刚接触织梦dedecms,就从基础看起,希望大家不要见笑,多多鼓励啊 呵呵。
在测试的时候发现静态模板类里面的 。
{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([/r/n/t/f ]+)///]/is”,$k,$this->CTags[$i]->InnerText);
$str .= preg_replace(“//[field:value([/r/n/t/f ]+)///]/is”,$v,$istr);
问题就在正则表达式上,主要是这部分([/r/n/t/f ]+)
说明在 [field:key 与 /] 之间可以包含换行、制表符、空格,但是不能什么都没有,
也就是说 [field:key/]是不对的
必须是
[field:key /](空格的)
[field:key /](制表符的)
[field:key
/](换行的)
这样就解决问题了,我测试是可以的。
=============================
希望对需要的人可以解决问题!

本信息由 会员:虎哥 整理发布。
本站声明:
1:本站不存储任何资源文件,敬请周知!本站所有资源仅供技术人员研究学习使用,如需商业使用请直接联系版权方获取授权!
2:本站信息若非特殊注明均为会员搜集发布,本站不对资源提供任何技术支持,请自行研究学习。
3:本站客服仅对站点使用提供咨询解答,不涉及任何资源内容信息。
4:本站不销售任何资源,我们仅提供技术交流分享服务。
5:如果此资源信息对你的权益造成困扰,请直接点击标题下的《投诉/版权异议》提交您的有效证明信息,我们会及时处理相关信息并且通知相关会员。

et资源
et资源 » 有关dede静态模板类dede:foreach的使用
标签:

答疑解惑FAQ

评论

发表评论