如何从发布的内容中删除 Javascript 标签

How to remove Javascript Tag from Posted Content

我网站上的用户 Post 所见即所得的内容,因此他们还可以添加有害的 java 脚本和样式 sheet。所以只是为了在我的内容中检测 java 脚本标签,我写了这个 regex->

$regex = "/\<script(.*?)?\>(.|\n)*?\<\/script\>/i";

preg_match_all($regex, $html, $scripts);

print_r($scripts);

正则表达式 print_r($scripts) 会给我:

array(
 [0] => <script src="http://example.com"></script>
 [1] => <script>// inline js$(document).ready( function() {});</script>
 )

我如何对 stylesheet 标签做同样的事情并删除 javascript 标签和 stylesheet 标签。上面的代码只检测 javascript 我怎样才能删除这个标签

你试过吗?

$storeHere = strip_tags(whatever_you_want_to_strip_tags_from);

要删除标签,您可以使用 preg_replace as

preg_replace("/<.*script.*>(.|\n)*<\/script>/", "", $input_lines);

preg_replace("/<.*stylesheet.*>(.|\n)*<\/stylesheet>/", "", $input_lines);

不需要转义<>,可以用.*代替(.*?)?。此外,我通过使用 (.|\n)* 而不是 (.|\n)*?

来为可能的嵌套标签制作 greedy