如何从已发布内容中删除Javascript标记

时间:2016-04-10 07:58:57

标签: php regex preg-match-all

我的网站上的用户在WYSIWYG中发布内容,因此他们也可以添加有害的java脚本和样式表。所以只是为了检测我的内容中的java脚本标记我写了这个正则表达式 - >

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

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

print_r($scripts);

regex这样print_r($ scripts)会给我:

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

如何使用样式表标记执行相同操作并删除javascript标记和样式表标记。上面的代码只检测javascript如何删除此标记

2 个答案:

答案 0 :(得分:1)

要删除代码,您可以使用preg_replace作为

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

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

无需转义<>,您可以使用.*代替(.*?)?。另外,我使用greedy代替(.|\\n)*

为可能的嵌套代码制作(.|\\n)*?

答案 1 :(得分:0)

你试过这个吗?

$ storeHere = strip_tags(whatever_you_want_to_strip_tags_from);