strip_tags无法正常工作

时间:2011-02-28 14:00:44

标签: php smarty

我在我的tpl文件中使用它,比如

{strip_tags({$obj->getfunc()})}

它会给出syntax error: unrecognized tag:

之类的误差

语法错误

完整的错误消息

<b>Fatal error</b>:  Smarty error: [in file.tpl line 7]: syntax error: unrecognized tag: strip_tags({$obj->getfunc() 

3 个答案:

答案 0 :(得分:1)

您的代码:

strip_tags({$obj->getfunc()})

这里的问题是{}花括号。我不知道为什么你认为你需要这些,但它们不是必需的。

[编辑]

我看到你编辑了问题/评论,注意到你正在使用Smarty。现在花括号是有道理的。

我猜你刚开始使用{$obj->getfunc()},并决定对其进行strip_tags()以防止黑客入侵。

{}大括号是Smarty的一部分,所以你应该只对这整个代码块使用它们。所以你需要在`strip_tags()函数之外,而不是在你之前的方法调用里面。

所以不应该使用strip_tags({$obj->getfunc()}),而应该是这样的:

{strip_tags($obj->getfunc())}

希望有所帮助。

[编辑2]

好的,我是一个PHP开发人员,而不是一个聪明的开发人员。上面的代码是有效的PHP(不包括{}大括号)。但也许聪明不喜欢那样。

我用Google搜索并在Smarty网站上找到了这个页面:http://www.smarty.net/docs/en/language.modifier.strip.tags.tpl

该页面为strip_tags提供了一些特定的Smarty语法,因此基于此,看起来您的代码应如下所示:

{$obj->getfunc()|strip_tags}

答案 1 :(得分:1)

我不是在演示级别而是在业务逻辑级别运行此函数。

答案 2 :(得分:0)

{替换为模板中的JavaScript代码{literal}} {/literal}