2013-03-13 127 views
2

我想比较两个包含HTML的字符串。 (它们都通过wysiwyg编辑器放入数据库中)。比较并突出显示包含html的两个字符串的差异

我想得到的结果是看看哪些单词被删除,哪些已被添加。

要做到这一点我使用this bit of code如下:

$old = "<p>Lorem ipsum is standard dummy text</p>"; 
$new = "<p>Lorem ipsum was standard dummy jibbrish</p>"; 
echo htmlDiff($old, $new); 

这工作完全正常。但是,当我添加一些标签,如<li>,乐趣结束。

例如,如果我想有以下几点:

$old = "<p>Lorem ipsum is standard dummy text. <ul><li>Lorem</li><li>Ipsum</li><li>Dolor</li></ul></p>"; 

$new = "<p>Lorem ipsum was standard dummy jibbrish. <ul><li>Lorem</li><li>Dolor</li></ul></p>"; 

echo htmlDiff($old, $new); 

<del>标签被第一个列表项后正确添加,但删除列表项被放置在<del>标签以外,使它看起来像它没有被删除。

我可以解决这个通过剥离所有标签,但我想保持两个字符串的布局。

任何帮助或建议,非常感谢。

回答

相关问题