在添加一些内容后,expressionengine停止解析一些标签

时间:2014-12-10 22:00:43

标签: php expressionengine

我正在修改表达式引擎通道条目,组中有多个此通道的字段,两个是网格。在模板中,我有循环遍历网格中的行并输出各种字段。这一切都按预期工作。

我最近想添加一些内容,当我完成现有的循环时,不再解析,只输出

{grid_name0}
    <div>stuff</div>
{/grid_name0}

并且任何{grid_name0:fieldname}都被替换为空字符串/无。其他标签继续正常工作,包括我添加的新内容中的标签和循环。

调试了一下后,我发现有一定数量的文本会破坏它,我可以像模板一样添加注释     <!-- 01234567890123456789012345678901234567890123456789 --> 当我达到一定的长度时,它会打破页面。这似乎可能是在表达式引擎处理所有内容之前达到了内存限制,我检查了各个区域的内存限制,它们似乎设置在合理的值(这是一个非常简单/轻便的站点),但我怀疑那里是一个我不知道的限制。

这是在表达引擎2.7.2上使用php 5.2.17,如果需要,我可以提供phpinfo的其他详细信息,但是php memory_limit设置为512M(坦率地说,这似乎有点过分)。

可能是相关的,但我添加的其中一个是带有{if:else}的“高级”条件,如果我有这个但是文本少于打破页面所需的文本,它也会打破精确同样的方式。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

非常感谢ellis labs的支持,他们指出我将pcre.backtrack_limit增加到默认值100000以上,它现在处理所有标签。回想起来,我应该早点检查一下,但很少遇到它的问题,它从未在我脑海中浮现。

编辑 system / expressionengine / config / config.php 并在初始行之后添加:

ini_set('pcre.backtrack_limit', 100000000);