如何从HTML页面中去除所有JavaScript

How can I get rid of all JavaScript from an HTML page?

本文关键字:JavaScript HTML      更新时间:2023-09-26

我可以使用regex来去除HTML中的<script>标记,比如这个

$html = preg_replace('#<script(.*?)>(.*?)</script>#is','', $html);

所以这很好,但是内联JavaScript呢?我想我可以这样做

$nodes = $dom->getElementsByTagName('*');
foreach($nodes as $node)
{
  if ($node->hasAttribute('onload')){
    $node->removeAttribute('onload');
  }
}

这样做的问题是,我必须找到所有的属性,并继续生成if语句。我也见过图书馆,但我想保持小规模。有什么快速的方法吗?如果我必须继续做我正在做的事情,还有什么带内联属性的好列表吗?

我想说,不要重新发明轮子,使用这样的库http://htmlpurifier.org/以实现这一点。