SmartyブロックのHTMLタグを削除するにはどうすればよいですか?ブロック内で
試しましたが、機能しませんでした。
また、プラグインを書いてみました。しかし、どうすればブロックの内容を文字列変数に解析できますか?{strip}
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.
onclick / onmouseover /その他の邪悪な属性はフィルタリングされないため、strip_tags(PHPパラメーターを含む)でタグを許可することに注意してください。
于 2012-06-20T16:20:40.063 に答える
0
{capture}
変数をブロックして、PHPを使用することができますstrip_tags()
。
{capture name="withtags"}
<em>Text</em> with <strong>tags</strong>
{/capture}
{$smarty.capture.withtags|strip_tags}
于 2014-03-18T02:52:09.573 に答える