Php 如何从发布的内容中删除Javascript标记
我的网站上的用户以所见即所得的方式发布内容,因此他们还可以添加有害的java脚本和样式表。为了在我的内容中检测java脚本标记,我编写了这个正则表达式->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
$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