提问人:Omar Elewa 提问时间:4/17/2022 最后编辑:Omar Elewa 更新时间:4/25/2022 访问量:247
htmlpurifier - 如何转义自关闭标签?
htmlpurifier - How to escape self closing tags?
问:
我注意到,当将 html 字符串传递给 htmlpurifier 时,它会通过打开和关闭标签或仅打开标签替换所有自关闭标签
例
净化前
<p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mmultiscripts>
<mi>y</mi>
<mprescripts/>
<none/>
<mn>2</mn>
</mmultiscripts>
</math>
</p>
净化后
<p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mmultiscripts>
<mi>y</mi>
<mprescripts></mprescripts>
<none>
<mn>2</mn>
</mmultiscripts>
</math>
</p>
如您所见,标签在被标签净化后被替换,这破坏了 html 的渲染!<none/>
<none>
在我的配置文件中添加什么以转义自关闭标记?这个列表中有什么速记可以解决问题吗?
请注意,我是通过 mews/purifier 包使用 htmlpurifier,这是一个专门用于 laravel 集成的包。
答:
1赞
pinkgothic
4/18/2022
#1
我相信标签的规则可能指出了结束标签消失的原因。HTML 标记,如 、 和 ,隐式自关闭。但是,您可以将元素与允许的子规则一起使用,该规则为空正则表达式。Empty
<none>
Empty
<br>
<hr>
<img>
Inline
Custom
“打开和关闭标签”场景对您来说是个问题吗?我对 MathML 不够熟悉,不知道这是否不仅仅是一个表面上的改变;如果该代码的语义行为保持不变,我不会担心。我目前不知道如何解决这个问题。
评论
<p></p>
y
2