Я использовал xdiff для этого, чтобы выделить изменения в тексте HTML-страницы. Основной рабочий процесс был:
- экранировать все сущности HTML
- разделить теги HTML на свои строки (добавить
\n
после закрытия >
)
- разбить полученный текст на пробелы (исключая дублирующиеся пробелы)
- воссоединяет результаты предыдущего разбиения с
\n
в качестве разделителя, поэтому теперь все теги и слова находятся на separate
строках
- сделать различие с
[xdiff_string_diff()][1]
- Исправьте вывод diff, чтобы выделить добавления / удаления с соответствующими тегами
не особенно эффективен и очень загружен дополнительными тегами переноса, если у вас есть длинная последовательность объявлений / удалений, но она справилась.