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

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

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

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

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

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

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

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

您也可以按照自己的意思去创建不同HTML标记的查找字典,用不同的未使用的Unicode值替换每个标记(我认为您可以使用一些用户定义的范围).但是,如果执行此操作,对标记的任何更改都将被视为对前一个或后一个单词的更改,因为Unicode字符将成为该单词到标记生成器的一部分.在每个令牌Unicode字符之前和之后添加空格将使HTML标记更改与纯文本更改分开.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...