Разница строк

alex_coder

Новичок
Добрый день. У меня есть необычная проблемка - нужно найти разницу строк. Сейчас объясню ситуацию. Есть 2 строки (строка может быть очень большой), первая - это какой-то текст (вместе с html-тегами), а вторая - тот же текст, но измененный пользователем. Т.е. что-то дописано, что-то убрано, и т.п. Нужно эти самые изменения экранировать спецтегом [complete]изменения[/complete]. Может кто сталкивался, посоветуйте в каком направлении думать. Спасибо.
 

Denis_Sokolov

Новичок
У меня родилась идея, которая, возможно, граничит с идиотизмом :) При сохранении новой версии берем оригинальный текст, разбиваем по словам и складываем в массив, то же и с измененным текстом. Далее в цикле сравниваем, если совпадает - пишем в строку без изменений, если не совпадает - пишем с тегами :) Работать будет точно, но касательно производительности судить не берусь.

UPD: Нет, не получится таким способом. Если слова некоторые удалить - сместится все((
 
Последнее редактирование:

alex_coder

Новичок
У меня родилась идея, которая, возможно, граничит с идиотизмом :) При сохранении новой версии берем оригинальный текст, разбиваем по словам и складываем в массив, то же и с измененным текстом. Далее в цикле сравниваем, если совпадает - пишем в строку без изменений, если не совпадает - пишем с тегами :) Работать будет точно, но касательно производительности судить не берусь.

UPD: Нет, не получится таким способом. Если слова некоторые удалить - сместится все((
у меня тоже была такая мысль)) но нет, по тем же причинам)
 

Denis_Sokolov

Новичок
А как Вам еще глупее идея...при выводе оригинального текста сразу же разделять его по словам и оборачивать их в span onkeyup и проверять, если слово изменилось - присваивать нужный стиль. Да, я просто генератор глупых идей :)
 

alex_coder

Новичок
А как Вам еще глупее идея...при выводе оригинального текста сразу же разделять его по словам и оборачивать их в span onkeyup и проверять, если слово изменилось - присваивать нужный стиль. Да, я просто генератор глупых идей :)
Как вариант, но слишком "тяжелый")
 
Сверху