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

前端之家收集整理的这篇文章主要介绍了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标记更改与纯文本更改分开.

原文链接:https://www.f2er.com/php/137287.html

猜你在找的PHP相关文章