pbootcms的if判断失效直接显示标签怎么回事?

使用pbootcms建站在处理详情内容做判断的时候,有时会出现判断失效的奇怪情况,直接显示标签代码。在一些其他地方判断极小概率也会碰到,这是为什么呢?

碰到这种情况首先检查是否判断的条件里含有了程序过滤的特殊字符,含有的话会使判断失效。

过滤特殊字符串处理在\apps\home\controller\ParserController.php中:

1650433034-c0e9d7f11f596da

问题案例

如下图判断的时候前台失效,直接显示了标签代码。检查判断条件中含有Evaluate触发了eval字符过滤导致。

1650434250-a2d5bee95909df0

解决办法

既然是含有了不该出现的字符,那就想办法不要拿含有这个字符的内容去判断。这里就可以使用到长度截取标签了,我们可以截取几个字符去作为条件判断。

1650434252-341400d4a4472f9

因此只要在判断条件上增加截取标签,例如:

原来的条件是{content:content},改为{content:content len=2} 即可。

其他的判断条件类似操作,你学会了吗?