Php strip_标记在属性内时删除允许的标记

Php strip_标记在属性内时删除允许的标记,php,Php,出于某种原因,PHP的strig_tags()函数正在移除显式允许的标记中的括号,当这些标记出现在属性中时 例如: 变成 我知道,我知道。这不一定是好的做法 无论如何,有什么想法吗?作为状态上的警告:**因为strip_tags()实际上并不验证HTML,部分或损坏的标记可能会导致删除比预期更多的文本/数据。 如果您想在属性中嵌入HTML,则必须对其进行正确编码,例如,您应该具有pHello/p Strip标记是“哑”标记,它将删除任何看起来像标记的内容,而不管该标记在文本中出现在何处,

出于某种原因,PHP的strig_tags()函数正在移除显式允许的标记中的括号,当这些标记出现在属性中时

例如:


变成


我知道,我知道。这不一定是好的做法

无论如何,有什么想法吗?

作为状态上的警告:
**因为strip_tags()实际上并不验证HTML,部分或损坏的标记可能会导致删除比预期更多的文本/数据。

如果您想在属性中嵌入HTML,则必须对其进行正确编码,例如,您应该具有
pHello/p


Strip标记是“哑”标记,它将删除任何看起来像标记的内容,而不管该标记在文本中出现在何处,也不管它是否会导致页面断开。

将HTML嵌入属性值并不一定是好的做法,这是对的。所以既然有无数更好的方法,你为什么还要这么做?只是好奇。还有,在这种情况下,你为什么要使用strip_标签呢?这正是。如果您使用
strip\u标记的原因是不允许某些形式的HTML,那么我建议您使用一个库,比如AntiSamy(不确定是否有PHP端口/等效端口)
<div data-contents="<p>Hello!</p>"></div>
<div data-contents="pHello!/p"></div>