摆脱Smarty中的块中的HTML标记

时间:2012-06-20 16:11:12

标签: html tags smarty block

如何摆脱Smarty块中的HTML标签?
我在街区内尝试了{strip}但它没有用 我还试着写一个插件。但是如何将块的内容解析为字符串变量?

2 个答案:

答案 0 :(得分:2)

{strip}块实际上做了其他事情 - 它只删除了标记空格。

您可以编写一个简单的块插件:

function smarty_block_sanitize($parms, $content, &$smarty, &$repeat ) {
    if( $repeat ) {
        return( strip_tags( $content ) );
    }
}

在显示模板之前将其放在调用的PHP文件中。要在模板中使用它,请执行以下操作:

Sample text {sanitize}<more markup>test</more markup>{/sanitize}  End text.

请注意允许带有strip_tags(带有PHP参数)的标签,因为onclick / onmouseover /其他邪恶属性不会被过滤。

答案 1 :(得分:0)

您可以{capture}阻止变量,然后在其上使用PHP strip_tags()

{capture name="withtags"}
    <em>Text</em> with <strong>tags</strong>
{/capture}
{$smarty.capture.withtags|strip_tags}