如何摆脱 Smarty 块中的 HTML 标签?
我已经{strip}
在街区内尝试过,但没有奏效。
我也尝试写一个插件。但是如何将块的内容解析为字符串变量呢?
问问题
656 次
2 回答
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 / 其他邪恶属性不会被过滤。
于 2012-06-20T16:20:40.063 回答
0
您可以{capture}
对变量进行块,然后strip_tags()
在其上使用 PHP:
{capture name="withtags"}
<em>Text</em> with <strong>tags</strong>
{/capture}
{$smarty.capture.withtags|strip_tags}
于 2014-03-18T02:52:09.573 回答