如何使用PHP从HTML文档中删除所有javascript?

Eti*_*ais 5 html javascript php regex strip

在我的电子邮件程序中,我在发送电子邮件之前使用Tidy来清理HTML.一个问题开始存在,如果我发送一封邮件从网上的网址获取html,那么文档中可能存在一些javascript.

我想通过剥离所有javascript,嵌入,引用和任何形式来清理这个html文档,以便邮件只存在于html中.

我想使用php preg_replace()来从邮件中删除所有javascript,我需要一些最好的正则表达式的帮助,因为这不是我必须承认的最强点.

kyn*_*igs 10

echo preg_replace('/<script\b[^>]*>(.*?)<\/script>/is', "", $var); 
Run Code Online (Sandbox Code Playgroud)

如图所示这里.

  • 这不会删除`javascript:`URL或`data:`URL,或事件处理程序中的javascript,或CSS`表达式(...)`或其他方案中的javascript.它可能不会处理带有嵌入式NUL的`<script`. (6认同)
  • 这也会在一些简单的输入上严重失败,例如`<scrip <script> </ script> t> alert(1337)</ script>`. (3认同)