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

Php 如何从发布的内容中删除Javascript标记,php,regex,preg-match-all,Php,Regex,Preg Match All,我的网站上的用户以所见即所得的方式发布内容,因此他们还可以添加有害的java脚本和样式表。为了在我的内容中检测java脚本标记,我编写了这个正则表达式-> $regex = "/\<script(.*?)?\>(.|\\n)*?\<\/script\>/i"; preg_match_all($regex, $html, $scripts); print_r($scripts); $regex=“/\(.|\\n)*?\/i”; preg_match_all($reg

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

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

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

print_r($scripts);
$regex=“/\(.|\\n)*?\/i”;
preg_match_all($regex、$html、$scripts);
打印(脚本);
regex,这样print_r($scripts)将为我提供:

array(
 [0] => <script src="http://example.com"></script>
 [1] => <script>// inline js$(document).ready( function() {});</script>
 )
数组(
[0] => 
[1] =>//内联js$(document).ready(function(){});
)
如何对样式表标记执行相同的操作,并删除javascript标记和样式表标记。上面的代码只检测javascript我如何删除这个标签你试过了吗


$storeHere=strip_tags(无论您想从中删除什么)

要删除标记,可以使用
preg\u replace
as

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

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

无需转义
,您可以使用
*
而不是
(*?)
。另外,我正在使用
(.|\\n)*
而不是
(.|\\n)*?

来贪婪
可能的嵌套标记,如果我去掉标记,那么所有
标记也将被删除如果你在正则表达式中将“script”替换为“style”,你应该得到样式标记。好的,谢谢,但是我如何删除这些标记?而不是匹配,使用replace.
preg\u replace(“/(.\124;\\ n)*?\/”,“,$input\u行)
preg\u replace(“/(.\124;\\ n)*?\/”,“,$input\u行)@rock321987