【发布时间】:2013-03-22 03:33:30
【问题描述】:
我正在尝试比较两个都包含 HTML 的 PHP 字符串。 (它们都通过所见即所得的编辑器放入数据库中)。
我想要得到的结果是看看哪些词被删除了,哪些词被添加了。
为此,我使用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> 标记之外,使它看起来好像没有被删除。
我可以通过剥离所有标签来解决这个问题,但我想保留两个字符串的布局。
非常感谢任何帮助或建议。
【问题讨论】:
标签: php highlighting string-comparison