我想通过将strip_tags与htmlspecialchars结合起来进行自定义过滤器。
假设我们有以下字符串:<p>lorem ipsum <span>dolor sit amet</span></p>
我只希望浏览器解释<p>
标记,并且我希望将<span>
标记列为纯文本。
实际上,我的问题是如何以纯文本形式显示不属于我的strip_tags allowable_tags列表的html标签?
谢谢。
答案 0 :(得分:0)
因此,如果我正确理解您,您的意思是将<p>
标记保留为HTML,但在<p></p>
内部转义任何其他HTML标记吗?
在这种情况下,您必须过滤字符串<p>lorem ipsum <span>dolor sit amet</span></p>
,
例如,使用preg_match()
让尝试 模式 ^<p>(.*)<\/p>$
,功能 preg_match('/^<p>(.*)<\/p>$/', '<p>lorem ipsum <span>dolor sit amet</span></p>', $match)
参见参考资料http://php.net/manual/en/function.preg-match.php
$ match将返回一个数组 - 模式中的every()意味着你想得到的匹配。
Array
(
[0] => <p>lorem ipsum <span>dolor sit amet</span></p>
[1] => lorem ipsum <span>dolor sit amet</span>
)
并且$ match [1]是您可以使用的正确选择!
所以,最后你可以htmlspecialchars($match[1])
。结果是,<p></p
&gt;中的任何内容都是如此。将很容易转义