Kezdőoldal » Számítástechnika » Programozás » PHP-ban a fájl elejére írás?

PHP-ban a fájl elejére írás?

Figyelt kérdés
Tehát van egy alap fájlom amit először átmásolok egy másik mappából, majd annak az elejére szeretnék írni néhány karaktert. A másolással nincs gond, azt megcsinálja rendesen, viszont utána már nem tudom, hogy kéne csinálni.

2015. jan. 3. 16:47
 1/4 anonim ***** válasza:
74%

function prepend($string, $filename) {

$context = stream_context_create();

$fp = fopen($filename, 'r', 1, $context);

$tmpname = md5($string);

file_put_contents($tmpname, $string);

file_put_contents($tmpname, $fp, FILE_APPEND);

fclose($fp);

unlink($filename);

rename($tmpname, $filename);

}


17/L

2015. jan. 3. 17:19
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
100%

A fájl elejére beilleszteni nem tudsz adatot, így a megoldás az lesz, ha


1. Létrehozod üresen a célfájlt (ha már tartalmaz adatot, azokat előtte írd ki egy tmp fájlba)

2. Beleírod az elejére szánt adatokat

3. Másolás helyett a forrásként szolgáló fájlból kiolvasod az adatokat, majd hozzáírod a fájlod végéhez.


Valahogy így:


$source_data = file_get_contents($source_file_name);

file_put_contents($dest_file_name, $data_to_prepend);

file_put_contents($dest_file_name, $source_data, FILE_APPEND | LOCK_EX);


Esetleg:


$fp_dest = fopen("destination.dat", "w");

fwrite($fp_dest, $data_to_prepend);

fwrite($fp_dest, fread($fp_source, filesize("source.dat"));


Lehetőleg ne másold ki innen a kódot, mert ebben a formában nem alkalmas éles felhasználásra, csupán a koncepciót hivatott bemutatni. Gondold át, hogyan lesz ez karbantarthatóbb, rugalmasabb, újrafelhasználhatóbb.

2015. jan. 3. 17:20
Hasznos számodra ez a válasz?
 3/4 uno20001 ***** válasza:

Előttem már leírták a megoldást.


Kicsit offtopic, #1 válaszoló, csak kíváncsiságból, miért fontos az, hogy, mintegy aláírásként odabiggyeszted, hogy "17/L". Miért olyan fontos?

2015. jan. 3. 18:32
Hasznos számodra ez a válasz?
 4/4 Djjjozsiiiii ***** válasza:
A fájlban tárolás helyett hatékonyabb volna egy adatbázis/táblát használni erre. Kiolvasás sorrendezhető, plusz elszeparáltan tudsz adatokat tárolni. Plusz, amikor szükséged van egy rekordra nem kell beolvasni a teljes adatbázist.
2015. jan. 4. 10:48
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!