PHP-Diff跳过脚本标签

时间:2018-05-23 15:44:21

标签: javascript php html

我目前正在使用https://github.com/rashid2538/php-htmldiff来扩展两个html网页,但问题是<script></script>标记内的内容也有所不同,我不想这样做,因为它会破坏运行性。我已经查看了代码,但我无法弄清楚在哪里调整以忽略脚本标记,因为我只是开始使用php作为我的第一语言。我理解代码的解析原理,但其他一切对我来说都很神秘。

有人可以建议或提供有关改变内容的提示吗?

文件1:

<html>
    <head>
       <script> var thing = 'test'; </script>
    </head>
    <body>
    </body>
</html>

file2的:

<html>
    <head>
       <script> var thing = 'anothertest'; </script>
    </head>
    <body>
    </body>
</html>

结果:

<html>
    <head>
       <script> var thing = '<del class="diffmod">test</del><ins class="diffmod">anothertest</ins>'; </script>
    </head>
    <body>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

您可以使用regex从两个html字符串中查找脚本标记,然后使用preg_replace()删除它们。之后,使用带有htmldiff函数

的两个字符串
$regex = '/<script\b[^>]*>(.*?)<\/script>/i';
$html1_parsed = preg_replace($regex, '', $html1);
$html2_parsed = preg_replace($regex, '', $html2);