我正在尝试比较PHP中的两个包含HTML的字符串。 (它们都通过wysiwyg编辑器放入数据库中。)
我想得到的结果是查看哪些单词被删除以及哪些单词已被添加。
为此,我使用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>
标记之外,使其看起来没有删除。
我可以通过剥离所有标记来解决这个问题,但我想保留两个字符串的布局。
非常感谢任何帮助或建议。
答案 0 :(得分:4)
您可以尝试使用htmlDiff函数的以下替代方法之一: