如何从发布的内容中删除 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
我网站上的用户 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