Smarty HTML Escape不起作用

时间:2017-12-06 14:34:41

标签: php smarty

我尝试转义变量输出以在XML Export中转义HTML。我不知道我做错了什么。 Export用于xt:commerce 5在线商店。

Smarty应该是v.3.1

模板

<?xml version="1.0" encoding="UTF-8" ?>
<orders>
    {assign var=foo value='<b>baaa& ü ä ß ö <> aaa</b>'}{$foo|escape:'htmlall'}
</orders>

输出

<?xml version="1.0" encoding="UTF-8" ?>
<orders>
    <b>baaa& ü ä ß ö <> aaa</b>
</orders>

1 个答案:

答案 0 :(得分:0)

转义html可确保您的浏览器不会将内容用作html,例如,如果删除转义符,则文本将为粗体。 要从字符串中实际删除标记,必须使用strip_tags(https://www.smarty.net/docs/en/language.modifier.strip.tags.tpl):

<?xml version="1.0" encoding="UTF-8" ?>
<orders>
    {assign var=foo value='<b>baaa& ü ä ß ö <> aaa</b>'}{$foo|strip_tags:}
</orders>

输出:

<xml version="1.0" encoding="UTF-8" ?="">
<orders>
     baaa&amp; ü ä ß ö   aaa 
</orders>