Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение двух версий HTML-кода, с выдачей разницы 
:(
    Опции темы
dm9
Дата 28.7.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Задача: сравнить два текста, набранных через визуальный редактор, и подсветить разницу. Детали не суть важны -- главное, чтобы сравнивал тексты и внятно выдавал, что нового.

Интересуют готовые решения -- сам написать могу, но некогда smile Подскажете?

Сразу насчёт Wiki-движков: важно сравнение именно HTML-я, а не Вики-разметки (не по идеологическим причинам -- просто моим пользователям смертельно нужна вставка из Ворда). Если знаете открытые движки, из которых такое можно выдрать, напишите, пожалуйста.


Это сообщение отредактировал(а) dm9 - 28.7.2008, 16:42
PM MAIL ICQ   Вверх
Mal Hack
Дата 28.7.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Проще, как мне кажется воспользоваться утилитой diff ОС.

http://pear.php.net/package/Text_Diff/redirected
http://www.hawkee.com/snippet/2238/
http://www.zend.com//code/codex.php?ozid=1381&single=1

Можешь еще тут посмотреть: http://www.phpclasses.org/
PM ICQ   Вверх
dm9
Дата 28.7.2008, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



То есть приводить HTML к тексту и затем сравнивать. Видимо, так и буду делать. Скорее всего использую pear, чтобы под Windows тоже работало - так тестировать проще.

Спасибо, Mal Hack smile

Но всё же вакантное место для сравнения именно HTML пока открыто smile

PM MAIL ICQ   Вверх
sTa1kEr
Дата 28.7.2008, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 5
Всего: 146



Цитата(Mal Hack @  28.7.2008,  17:53 Найти цитируемый пост)
Проще, как мне кажется воспользоваться утилитой diff ОС.
Полностью согласен - луше использовать готовые и проверенные системные средства, чем изобретать новые велосипеды на PHP.
Так же можно воспользоваться экстеншеном xdiff

Добавлено через 2 минуты и 46 секунд
Цитата(dm9 @  28.7.2008,  23:06 Найти цитируемый пост)
То есть приводить HTML к тексту и затем сравнивать.

Цитата(dm9 @  28.7.2008,  23:06 Найти цитируемый пост)
Но всё же вакантное место для сравнения именно HTML пока открыто

А в чем сравнение HTML должно отличается от сравнения plain text?
PM MAIL   Вверх
Mal Hack
Дата 28.7.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



dm9, а что тебе мешает тже самое с html сделать? У тебя редактор какой, text/plain или WYSWIG?
На входе формат данных какой?
PM ICQ   Вверх
dm9
Дата 29.7.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



На входе WYSWIG. Проблема в том, что diff обнаружит разницу между <b>text</b> и <i>text</i>, а текущие версии сравнения текста такие вещи подсвечивать не умеют. Как можно было бы ("идеал").
1. Не заставлять меня самого чистить HTML и преврашать его в text/plain (могла бы и библиотека делать =)).
2. Можно было бы оставлять конечный HTML в выдаче результатов, подсвечивая разность именно контента (а не оформления), но тем не менее не лишаясь совершенно оформительских прелестей при просмотре диффа.

Добавлено через 3 минуты и 5 секунд
Цитата(sTa1kEr @  28.7.2008,  23:07 Найти цитируемый пост)
А в чем сравнение HTML должно отличается от сравнения plain text?


Собственно, форматом выдачи результата диффа конечному пользователю (который, надо учесть, не знает HTML и слова "тег" не слышал).

Добавлено через 6 минут и 24 секунды
Цитата(sTa1kEr @  28.7.2008,  23:07 Найти цитируемый пост)
Так же можно воспользоваться экстеншеном xdiff


Спасибо, посмотрел. К сожалению, тоже только под nix. Мне просто хочется оставить 100% работоспособности под Windows, так отлаживать проект проще.

PM MAIL ICQ   Вверх
Anarki
Дата 14.8.2008, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 2
Всего: 11



Попробуйте вот это horde framework, в фреймворк включен модуль Text_Diff (lib/Text/Diff.php), который поддерживает несколько "движков" для diff'a в том числе и xdiff, diff и нативного(целиком на php)

Добавлено через 51 секунду
Его чуть переделанная версия идет в wordpress

Добавлено через 3 минуты и 42 секунды
diff есть под винду консольный тут http://sourceforge.net/projects/unxutils/


--------------------
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0758 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.