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