Két nagy szöveg összehasonlítása, változások kinyerése
Sziasztok!
A probléma: az adatbázisban van egy szöveg. A felhasználó ezt a szöveget módisítja, majd ez ugye az adatbáziban tárolódik. Az adatázisban 2 oszlop van. 1. a régi szöveg, 2. az új szöveg.
Ezt a két akár nagyon hosszú szöveget kellene összehasonlítani valamiképp, illetve kiszedni belőle a változásokat (a változott rész (akár betű) körüli pár sort).
Ha a szövegeket változóba tárolom és úgy hasoníltom össze az lassú.
Viszont ha méretét nézem, akkor meg nem biztos hogy minden módisítást észrevesz a kód hisz a módisítás lehet pl.: -a és másol +a rak be.
Ez az egyik amire szeretnék valamilyen irányt, kezdő lépést... kapni. A másik pedig hogy hogyan szedhetem ki a változásokat és a körülöttül levő pár sort.
■ A probléma: az adatbázisban van egy szöveg. A felhasználó ezt a szöveget módisítja, majd ez ugye az adatbáziban tárolódik. Az adatázisban 2 oszlop van. 1. a régi szöveg, 2. az új szöveg.
Ezt a két akár nagyon hosszú szöveget kellene összehasonlítani valamiképp, illetve kiszedni belőle a változásokat (a változott rész (akár betű) körüli pár sort).
Ha a szövegeket változóba tárolom és úgy hasoníltom össze az lassú.
Viszont ha méretét nézem, akkor meg nem biztos hogy minden módisítást észrevesz a kód hisz a módisítás lehet pl.: -a és másol +a rak be.
Ez az egyik amire szeretnék valamilyen irányt, kezdő lépést... kapni. A másik pedig hogy hogyan szedhetem ki a változásokat és a körülöttül levő pár sort.
<Nincs cím>
http://hu2.php.net/strcmp
Illetve mintha a PEAR is tartalmazna ide vonatkozó csomagot:
http://pear.php.net/package/Text_Diff
<Nincs cím>
Azért köszöm.
Még valaki?:)
diff
A dolog nehézségét az ideiglenes file-ok "hatékony" elnevezése, és az említett funkciók megfelelő pillanatban történő meghívása, jelenti, illetve az, hogy a két elmentett állapotnak formátumra (sortörés, karakterkódolás, stb) teljesen egyformának kell lenni, hogy a diff valóban csak a változtatást adja vissza.
Gyulus
xdiff
http://www.php.net/manual/hu/ref.xdiff.php
<Nincs cím>