如何显示2个html文本块的比较

Ste*_* G. 8 html php comparison pear compare

我需要带两个带有html标签的文本块并进行比较 - 合并两个文本块,然后突出显示从一个版本添加到下一个版本的内容.

我已经使用PEAR Text_Diff类成功地呈现了文本的比较,但是当我尝试在其中输入带有html标签的文本时,它会变得很难.由于该类使用的基于单词和字符的比较算法,html标签被破坏了,我最终得到了像丑陋的东西<p><span class="new"> </</span>p>.它屠杀了HTML.

有没有办法在保留原始有效的html标记的同时生成文本比较?

谢谢您的帮助.我已经做了几个星期了:[

这是我能想到的最佳解决方案:用1个特殊的非标准字符(如苹果标识(opt shift k))查找/替换每种类型的html标签,渲染与这种主要降价的比较,然后还原非标准字符返回标签.任何反馈?

ric*_*ent 1

问题似乎是您的 diff 程序应该将现有的 HTML 标记视为原子标记而不是单个字符。

如果您的引擎能够限制自己只处理单词边界,请查看是否可以覆盖确定单词边界的函数,以便它识别 HTML 标签并将其视为单个“单词”。

您还可以按照您所说的那样创建一个不同 HTML 标记的查找字典,用不同的未使用的 Unicode 值替换每个标记(我认为您可以使用一些用户定义的范围)。但是,如果您这样做,对标记的任何更改都将被视为对前一个或后一个单词的更改,因为 Unicode 字符将成为标记生成器该单词的一部分。在每个令牌 Unicode 字符之前和之后添加一个空格将使 HTML 标记更改与纯文本更改分开。