File tartalom módosítás
Hello!
Van egy szövegfile-om amiben egymást kövtő bejegyzések vannak, amiket sortörés (\n) választ el egymástól.
pl:
548:ASUSTek Computer:2006/10/26
549:Canon:2006/10/26
550:Epson:2006/10/27
551:Hawlett-Packard:2006/10/27
552:Samsung Electronics:2006/10/27
553:Logitech:2006/10/27
A sor első három számjegye egyedi.
A kérdésem hogyan lehet PHP-val törölni egy tetszőleges sort (mondjuk az 550-est), úgy hogy a többi adat megmaradjon, lehetőleg ne maradjon üres sor a szövegfileba, és lehetőleg ne keljen hozza ideiglenes állományot létrehozni?
Minden ötletet előre is köszi!
■ Van egy szövegfile-om amiben egymást kövtő bejegyzések vannak, amiket sortörés (\n) választ el egymástól.
pl:
548:ASUSTek Computer:2006/10/26
549:Canon:2006/10/26
550:Epson:2006/10/27
551:Hawlett-Packard:2006/10/27
552:Samsung Electronics:2006/10/27
553:Logitech:2006/10/27
A sor első három számjegye egyedi.
A kérdésem hogyan lehet PHP-val törölni egy tetszőleges sort (mondjuk az 550-est), úgy hogy a többi adat megmaradjon, lehetőleg ne maradjon üres sor a szövegfileba, és lehetőleg ne keljen hozza ideiglenes állományot létrehozni?
Minden ötletet előre is köszi!
Egy ötlet:
Ha mindenképpen meg kell őrizni a szöveges fájlok formátumát, akkor dióhéjban:
fopen, fread, strpos, substr, fwrite, fclose.
Lásd még: file
magyar nyelv, és a logika...
Szóval az nem 'állományot', hanem 'állományt'...
Amúgy meg, logikusan végiggondolva:
1. Beolvasod a fájlt
2. Kiszeded belőle, ami nem kell bele
3. Visszaírod a fájlt
Namármost:
Ha a fájl nagy, akkor nem érdemes memóriába pakolnod és ugyanabba a fájlba visszaírnod, mert ha közben mondjuk elfogy a memória, akkor megáll a script...
Ezért én azt javaslom, hogy:
1.) beolvasod a fájlod minden egyes sorát külön külön
2/a) ha az éppen beolvasott sor NEM a törlendő, akkor egy ideiglenes fájlba beírod
2/b) (ha épp a törlendő, akkor nem csinálsz semmit)
3.) bezárod a fájlokat
4.) az ideiglenes fájlt átnevezed az eredetire
Memóriapazarlás lenne máshogy csinálni.
Illetve még annyit tennék, hogy a 2/b esetben lehet egy $voltTorolt valtozonak true értéket beállítani, és a végén, ha az igaz, akkor nevezed csak át az ideiglenes fájlt, egyébként meg kiírod, hogy 'Hopp, ilyen nem is volt...'
A megoldásokhoz szükséges függvényeket már leírták. Én azért írtam, nehogy az egész fájlt beolvasd a memóriába, mert annak nagy szívás lehet a vége...
Adatbázis
szerintem