Как показать сравнение 2 блоков текста HTML

Вы попытались "добавить" разрешение?

я сделал это с монитором HP 1740.

Вы могли использовать .sh файл, чтобы добавить, что, позволяет, говорят, например, Вы хотите добавить 1280x1024 разрешение:

fixme.sh:

#!/bin/sh
xrandr --newmode 1280x1024_60.00  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA1 1280x1024_60.00
xrandr --output VGA1 --mode 1280x1024_60.00

Затем можно выполнить файл:

fixme.sh

шеннона и там Вы идете, новое разрешение, доступное

8
задан Stephan202 20 October 2009 в 09:07
поделиться

5 ответов

Проблема, похоже, в том, что ваша программа сравнения должна обрабатывать существующие HTML-теги как атомарные токены, а не как отдельные символы.

Если ваш движок имеет возможность ограничиваться работой со словом границ, посмотрите, можете ли вы переопределить функцию, которая определяет границы слов, чтобы она распознавала и обрабатывала HTML-теги как одно «слово».

Вы также можете сделать то, что говорите, и создать справочный словарь отдельных HTML-тегов, который заменяет каждый с отдельным неиспользуемым значением Unicode (я думаю, что вы можете использовать определенные пользователем диапазоны). Однако, если вы сделаете это, любые изменения в разметке будут обрабатываться так, как если бы они были изменением предыдущего или следующего слова, потому что символ Unicode станет частью этого слова для токенизатора.

1
ответ дан 5 December 2019 в 22:19
поделиться

Как насчет того, чтобы сначала использовать html tidier / formatter для каждого блока? Это создаст стандартную "структуру", которую вашему различию будет легче проглотить

1
ответ дан 5 December 2019 в 22:19
поделиться

Попробуйте сначала запустить свои блоки HTML с помощью этой функции:

htmlentities();

Это должно преобразовать все ваши «<» и «>» в ​​их соответствующие коды, что, возможно, решит вашу проблему.

//Example:
$html_1 = "<html><head></head><body>Something</body></html>"
$html_2 = "<html><head></head><body><p id='abc'>Something Else</p></body></html>"

//Below code taken from http://www.go4expert.com/forums/showthread.php?t=4189.
//Not sure if/how it works exactly

$diff = &new Text_Diff(htmlentities($html_1), htmlentities($html_2));
$renderer = &new Text_Diff_Renderer();
echo $renderer->render($diff);
0
ответ дан 5 December 2019 в 22:19
поделиться

Simple Diff, by Paul Butler, выглядит так, как будто он предназначен для того, чтобы делать именно то, что вам нужно: http://github.com/paulgb/simplediff/blob/5bfe1d2a8f967c7901ace50f04ac2d9308ed3169/simplediff.php

Обратите внимание, что в его php-коде есть htmlDiff-код: $ old, $ new)

(Его сообщение в блоге об этом: http: // paulbutler.org / archives / a-simple-diff-algorithm-in-php /

3
ответ дан 5 December 2019 в 22:19
поделиться

Копия моего собственного ответа из здесь .


А как насчет DaisyDiff ( Java и PHP версии доступны).

Следующие функции действительно хороши:

  • Работает с плохо сформированным HTML, который можно найти «в дикой природе».
  • diffing более специализирован на HTML, чем на XML-дереве. Изменение части текстового узла не приведет к изменению всего узла.
  • В дополнение к визуальному различию по умолчанию, исходный HTML-код может быть согласован.
  • Предоставляет легкие для понимания описания изменений.
  • графический интерфейс по умолчанию позволяет легко просматривать изменения с помощью сочетаний клавиш и ссылок.
0
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: