Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wychwytywanie zmian w dużych ciągach znaków
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Cześć,

Zastanawiam się nad optymalną metodą wychwytywania i zaznaczania zmian w dużych stringach.
Załóżmy, że mam string z 500 znaków, 50 linijek. Zawiera tagi html, znaki nowej lini, BRy, i wiele innych. W skrócie - totalny chaos.
Skrypt pobiera string z bazy, udostępnia do edycji i po edycji zapisuje jako nowy rekord, nie usuwając poprzedniego. Ktoś ten string edytuje, tj. np. dodaje jedno słowo w jednej linijce i zmienia jedno słowo w innej, oraz dodaje całą nową linijkę.
Jak wyszukać te konkretne 3 linijki w których dokonano zmian (jedną dodano) względem poprzedniej wersji stringu?

Obrazowo:
STRING 1:
Kod
1. blabla
2. <br>
3. text text text
4. LOREM IPSUM
5. koniec jeden


String 2, po edycji:
Kod
1. blablablablabla
2. <br>
3. text text text tekst
4. LOREM IPSUM
5. dodana linijka
6. koniec jeden


Chciałbym otrzymać informację że dokonano zmian w tych linijkach:
Kod
1. blablablablabla
3. text text text tekst
5. dodana linijka


Jakieś pomysły? Porównywanie linijka po linijce właściwie odpada bo może być możliwość że cała linijka zostanie usunięta, lub dodane kila nowych, również pustych.
Dzięki.
kreatiff
Kiedyś korzystałem z tego: https://github.com/paulgb/simplediff
Nie wskazuje linii, gdzie nastąpiły zmiany, tylko oznacza zmiany tak jak zadamy w funkcji. Ja porównywałem teksty, gdzie następowało wskazywanie m.in. literówek i działało dobrze. Dodatkowe wyrazy też ładnie wyłapuje. Nie wiem z kolei jak zareaguje, gdy jakieś wyrazy znikną.
sadistic_son
Też może być, działa całkiem nieźle. Dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.