PHP删除JavaScript [英] PHP Remove JavaScript
本文介绍了PHP删除JavaScript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从HTML中删除JavaScript。
I am trying to remove JavaScript from the HTML.
我无法使用正则表达式来处理PHP;它给了我一个空数组。为什么?
I can't get the regular expression to work with PHP; it's giving me an null array. Why?
<?php
$var = '
<script type="text/javascript">
function selectCode(a)
{
var e = a.parentNode.parentNode.getElementsByTagName(PRE)[0];
if (window.getSelection)
{
var s = window.getSelection();
if (s.setBaseAndExtent)
{
s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);
}
else
{
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);
}
}
else if (document.getSelection)
{
var s = document.getSelection();
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);
}
else if (document.selection)
{
var r = document.body.createTextRange();
r.moveToElementText(e);
r.select();
}
}
</script>
';
function remove_javascript($java){
echo preg_replace('/<script\b[^>]*>(.*?)<\/script>/i', "", $java);
}
?>
推荐答案
这应该这样做:
echo preg_replace('/<script\b[^>]*>(.*?)<\/script>/is', "", $var);
/ s是这样的点。也匹配换行符。
/s is so that the dot . matches newlines too.
只是一个警告,你不应该使用这种类型的正则表达式来清理网站的用户输入。解决问题的方法太多了。对于消毒使用类似 http://htmlpurifier.org/ 库
Just a warning, you should not use this type of regexp to sanitize user input for a website. There is just too many ways to get around it. For sanitizing use something like the http://htmlpurifier.org/ library
这篇关于PHP删除JavaScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文