Fájlkezelés a PHP-ban (Fájl létrehozása, megnyitása, írása, törlése, lezárása)
Ebben a leckében a PHP fájlkezelést mutatjuk be, kitérünk a fájlmegnyitásra, létrehozásra, írásra és törlésre. Természetesen mindegyiket bemutatjuk példákon keresztül is.
Fájl létrehozása PHP-ban
Elsőnek a fájllétrehozását fogjuk bemutatni PHP nyelven. Elsőre kicsit furcsa lehet, de a fájl létrehozására ugyanazt a függvényt kell használnunk, mint a megnyitására. Ha a fájlmegnyitó utasítást úgy adjuk ki írási jogosultsággal, hogy a fájl nem létezik, akkor a rendszer létrehozza azt.
Szintaxis
fopen(FÁJLNÉV, "w");
Code language: JavaScript (javascript)
A fájlnevéhez azt várja a rendszer, ahogy elszeretnénk nevezni a létrehozandó fájlt. Ha szimplán fájlnevet adunk meg, akkor a PHP dokumentum mappájában fogja létrehozni a fájlt, azonban megadhatunk útvonalat is és akkor oda fogja elmenteni. A második paraméter azt jelöli, hogy írni készülünk, így azt ne módosítsuk.
Példa fájl létrehozására PHP-ban
PHP kód
<?php
$file = fopen("fajl.txt", "w");
?>
Code language: HTML, XML (xml)
A fenti példában a „fajl.txt” hozzuk létre a PHP fájl mappájában.
Fájlmegnyitás PHP-ban
Másodjára a fájlmegnyitást mutatjuk be PHP nyelven, ehhez az fopen() függvény használatára van szükségünk.
Szintaxis
fopen(FÁJLNÉV, "MÓD");
Code language: JavaScript (javascript)
Mint ahogy fentebb írtuk egy fájlt az fopen() függvénnyel tudunk megnyitni. Ennek két paramétere van, az első a fájlneve, ha a PHP fájl és a megnyitandó fájl ugyanabban a mappában található. A módhoz azt várja a PHP, hogy mit szeretnénk kezdeni a fájllal, például olvasni („r”) vagy csak írni („w”).
A későbbiekben ezt fogjuk fájlkezelőnek nevezni, érdemes ezt egy változóba elmentenünk, mert később még több művelet során szükségünk lesz rá.
Példa fájlmegnyitásra PHP-ban:
PHP kód
<?php
$file = fopen("fajl.txt", "r");
?>
Code language: HTML, XML (xml)
A fenti példában a „fajl.txt” fájlt szeretnénk olvasásra („r”) megnyitni. A PHP kód futtatásának nincs frontend-en látható eredménye.
Fájlolvasás a PHP-ban
Következőnek nézzük meg azt, hogy hogyan tudjuk kiolvasni egy szöveges fájl tartalmát PHP-ban. A fájlolvasást kétféleképpen tehetjük meg PHP-ban, mind a két módszert bemutatjuk.
Szintaktika
fread(FÁJLKEZELŐ, HOSSZ);
// vagy
readfile("FÁJLNÉV");
Code language: JavaScript (javascript)
Az fread() két paramétert vár, az első a megnyitott fájl, a második a fájlméret, amit célszerű a filesize() függvénnyel lemérni. A második megoldás egy kicsivel egyszerűbb, hiszen az csak egyetlen egy paramétert vár a fájl nevét.
Példa fájlolvasásra PHP-ban:
fajlt.txt tartalma
Ezt a szöveget a fajl.txt tartalmazza.
PHP kód
<?php
$file = fopen("fajl.txt", "r");
echo fread($file, filesize("fajl.txt"));
echo "<br>";
echo readfile("fajl.txt");
?>
Code language: HTML, XML (xml)
Eredmény
Ezt a szöveget a fajl.txt tartalmazza.
Ezt a szöveget a fajl.txt tartalmazza.39
Az eredményből látszik, hogy az fread() csak a szövegfájl tartalmát írja ki, míg a readfile() a szöveget és a méretét is. Ha csak egy szöveget szeretnénk kiírni és elolvasni, akkor elegendő lehet a második megoldás is, azonban ha a beolvasott szöveget szeretnénk feldolgozni, akkor érdemes az első megoldást választanunk.
Fájl írása PHP-ban
Most pedig következzen a fájlírás PHP-ban. Egy fájlírásánál azt kell mérlegelnünk, hogy hogyan szeretnénk írni azt a fájlt, azaz el kell döntenünk, hogy azt szeretnénk, ha írás során a fájl eddigi tartalma felülíródna, vagy azt ha az eredeti tartalma megmaradni, plusz az is hozzáfűződne, amit mi írtunk.
Szintaktika
fwrite(HOVA, MIT);
Egy fájlba az fwrite függvénnyel tudunk, melynek két bemenő paramétere van, az elsőnél azt kell megadnunk, hogy hova, azaz melyik fájlba írjunk, a másodiknál pedig azt, hogy mit írjunk a fájlba.
Ha szimplán írni szeretnénk a fájlba és felülírni, ha van tartalma, akkor az fopen() függvény második paraméterénél „w”-t, azaz írást kell megadnunk. Ha azt szeretnénk, hogy a szövegesfájl eredeti tartalma is megmaradjon, plusz amit mi írunk az is hozzáfűződjön, akkor az „a” (append) módot kell választanunk.
Példa fájl írására „w” módszert alkalmazva PHP-ban
fajlt.txt tartalma
Ezt a szöveget a fajl.txt tartalmazza.
PHP kód
<?php
$file = fopen("fajl.txt", "w");
fwrite($file, 'Ezt írd a fájlba.');
?>
Code language: HTML, XML (xml)
fajlt.txt tartalma
Ezt írd a fájlba.
Láthatjuk, hogy mivel a fájl megnyitásánál az írást választottuk, így a fájl eredeti tartalma felül fog íródni az új tartalommal.
Példa fájl írására „a” módszert alkalmazva PHP-ban:
fajlt.txt tartalma
Ezt a szöveget a fajl.txt tartalmazza.
PHP kód
<?php
$file = fopen("fajl.txt", "a");
fwrite($file, ' Ezt fűzd hozzá.');
?>
Code language: HTML, XML (xml)
fajlt.txt tartalma
Ezt írd a fájlba. Ezt fűzd hozzá.
Mivel ebben az esetben az append, azaz hozzáfűzés módszerét választottuk, így az eredeti tartalom nem íródik felül, szimplán kiegészül az általunk megadott szöveggel.
Fájl bezárása PHP-ban
Ha elvégeztünk minden műveletet a fájllal, amit szerettünk volna, akkor be kell zárnunk azt.
Szintaktika
fclose(FÁJLKEZELŐ);
Szimplán adjuk meg neki paraméterként a fájlkezelőt (fopen()-t tároló változót).
Példa fájl bezárására PHP-ban
PHP kód
<?php
$file = fopen("fajl.txt", "w");
fclose($file);
?>
Code language: HTML, XML (xml)
Ebben a példában szimplán megnyitunk írásra egy fájlt, majd be is zárjuk azt.
Fájltörlés PHP-ban
Végezetül pedig nézzük meg azt, hogy hogyan tudunk fájl törölni a PHP segítségével.
Szintaktika
unlink('FÁJLNÉV');
Code language: JavaScript (javascript)
A törlést az unlink függvénnyel tudjuk megvalósítani, amely egyetlen egy paramétert vár, mégpedig a fájlnevet, amelyet törölni szeretnénk.
Példa fájl törlésére PHP-ban
PHP kód
<?php
unlink('fajl2.txt');
?>
Code language: HTML, XML (xml)
A fájltörlésnek nincs frontenden látható eredménye.