Milyen függvénnyel lehet törölni txt fájlból php-ben?
Elvileg meg tudod nyitni read+write módban is, ekkor nem kell újraírni csak onnan, ahonnan ki akarsz törölni vmit.
+nem kell az egészet memóriába beolvasni.
Tehát ezt tudod csinálni:
meggnyitod r+ módban (read+write)
fseek-kel oda ugrasz, ami a kitörlendő rész után van, beolvasol egy "blokkot" (ez egy általad megadott méretű buffer)
seekelsz a kitorlendő resz elejáre, beírod az előbb beolvasott blokkot.
utána seekelsz az előbb beolvasott blokk utáni részre, beolvasol mégegyet, aztán ujra seekelsz a megfelelő helyre és kiírod, ismétled, amig el nem fogy az adat.
Majd a legvégén ftruncate-eled a megfelelő poziciotol.
Ennek az előnyei:
- a fájl elejét nem kell bántani (gyorsabb, ha nem a fajl elejerol kell torolni. ha onnan kell, akkor pedig nem lassabb)
- nem kell memoriaban tartani az egész fájlt (sok sok GBos fájlokkal sem lesz gond)
hátránya nincs, igazából hülyeség lenne az egész fájlt beolvasni és kiírni. A beolvas-kiír módszernek talán az az előnye, hogy egyszerűbb leimplementálni, de azért ez sem egy ördöngősség, 1 ciklus az egész...
Szerintem ennél egyszerűbb és átláthatóbb nincs:
ciklus {
> sort beolvas
> ha nem törlendő {
> > kiírja az új fájlba
> }
}
régi fájl törlése
új fájl átnevezése a régi nevére
kthxbye
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!