"景先生毕设|www.jxszl.com

洧關dede静态模板类dedeforeach的使用

2022-10-29 16:26编辑: www.jxszl.com景先生毕设
刚刚接触织梦dedecms,就从基础看起,希望大家不要见笑,多多鼓励啊呵呵.
在测试的时候发现静态模板类里面的.
{dede:foreacharray="数组名"}[field:key/][field:value/]{/dede:foreach}这本标签总不能正常使用,执行后总是返回

 更多精彩就在: 51免费论文网|www.jxszl.com 
[field:key/][field:value/][field:key/][field:value/]….n个[field:key/][field:value/]"而不是正在的数据,在网上搜了搜,结果大部分都是转载织梦系统的原装帮助文档里面的资料,没有说明此问题,这里有人也遇到了I.样的问题,本来想回复他来,可是我是新人,他所在的版块我无权回复,就发I.个新帖了,呵呵,扯远了,书归正传!
为什么会有这样的效果呢,数组名设置后是可以遍历的,而且遍历的次数也是对了,就是数据不能正常显示
肯定是哪里解析错误了,
顺着思路往下找,
最后在include/dedetag.class.php文件中的第VVIIVIII行和VVIIIX行(版本不I.样可能不同,在该文件的AssignSysTag()方法体里面)找到了答案!
$istr.=preg_replace(/[field:key([ f]+)/]/is",$k,$this->CTags[$i]->InnerText);
$str.=preg_replace(/[field:value([ f]+)/]/is",$v,$istr);
问题就在正则表达式上,主要是这部分([ f]+)
说明在[field:key与/]之间可以包含换行.制表符.空格,但是不能什么都没有,
也就是说[field:key/]是不对的
必须是
[field:key/](空格的)

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

[field:key
/](换行的)
这样就解决问题了,我测试是可以的.
=============================
希望对需要的人可以解决问题!


原文链接:http://www.jxszl.com/biancheng/dedecms/74764.html