Что такое библиотека PHP, которая будет показывать встроенные различия? - PullRequest
4 голосов
/ 10 апреля 2010

Я ищу библиотеку PHP, которая обеспечит мне встроенное различие между двумя строками, например: http://grabby.info/dfe2835f606443757ae7c18404e71781.png.

В настоящее время я использую xdiff, но он пересекает всю строку, когда меняется одно слово, и это не то, что я хочу.

Есть предложения?

1 Ответ

2 голосов
/ 10 апреля 2010

Я использовал xdiff для этого, чтобы выделить изменения в тексте HTML-страницы. Основной рабочий процесс был:

  1. экранировать все сущности HTML
  2. разделить теги HTML на свои строки (добавить \n после закрытия >)
  3. разбить полученный текст на пробелы (исключая дублирующиеся пробелы)
  4. воссоединяет результаты предыдущего разбиения с \n в качестве разделителя, поэтому теперь все теги и слова находятся на separate строках
  5. сделать различие с [xdiff_string_diff()][1]
  6. Исправьте вывод diff, чтобы выделить добавления / удаления с соответствующими тегами

не особенно эффективен и очень загружен дополнительными тегами переноса, если у вас есть длинная последовательность объявлений / удалений, но она справилась.

...