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.

A PHP leckékhez készített kép, mely bemutatja, hogy weboldalunkon ingyenesen tanulható a PHP nyelv

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.

Ha hasznos volt számodra, akkor kérlek oszd meg másokkal is, hogy ezzel támogass minket!