我正在使用 PEAR text_diff 类来比较文本。它适用于纯文本,但是当我尝试将文本与 HTML 标签进行比较时,它给出了错误的结果
有什么方法可以比较两个 HTML 块并在结果显示文本中保留其 HTML 并显示差异,如 svn
我不确定您使用的是哪个操作系统,但我总是在 Ubuntu 上使用 Meld 来区分非版本化文件。区分 HTML 代码(或其他任何内容)没有任何问题:
根据我的经验,这两个很棒:
是的,没有一个程序是用纯 PHP 编写的。您只需通过 PHP 运行它们:
// Python script:
$html_diff = shell_exec ('python /path/to/htmldiff version1.html version2.html');
// C program:
$html_diff = shell_exec ('/path/to/htmldiff --start-delete="<span class=\'delete\'>" --end-delete="</span>" --start-insert="<span class=\'insert\'>" --end-insert="</span>" version1.html version2.html');
由于它们不是用 PHP 编写的,因此您可以享受令人难以置信的高速 :)
您可以在 javascript 本身中正确执行此操作。查看google-diff-match-patch。
差异演示在这里。