両方ともHTMLを含むPHPの2つの文字列を比較しようとしています。(どちらもwysiwygエディターを介してデータベースに配置されます)。
私が取得したい結果は、どの単語が削除され、どの単語が追加されたかを確認することです。
これを行うために、私は次のようにこのコードを使用しています。
$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>
タグの外側に配置されるため、削除されていないように見えます。
すべてのタグを削除することでこれを解決できましたが、両方の文字列のレイアウトを維持したいと思います。
ヘルプや提案は大歓迎です。