Adattároló fájlok kezelése.

Fájl megnyitása:
  1. fopen() függvény:
    fopen($munkafájl, "fájl_elérésí_útvonala", "megnyitás módja");.
    Megnyitás módja = Mit fogunk végrehajtani a megnyitott fájl tartalmával.
    Az fopen() függvényben megnyitási módként a "b" értéket is megadhatjuk.
  2. file() függvény:
    $munkafájl = file('fájl_elérésí_útvonala');

 


Fájlba írás:

fwrite() függvénnyel:
fwrite($munkafájl, mit írunk);
fwrite($munkafájl, mit írunk, és mennyi bájtot);

 


Munkafájl állományinformációinak lekérdezése:

 


Megnyitott fájl bezárása:

fclose() függvénnyel::
fclose($munkafájl);
A szkript lefutásának végeztével a PHP-nek automatikusan be kell zárnia az összes megnyitott állományt (fájlt).
Ha a bezárást mi határozzuk meg a szkriptben, akkor gyorsabban felszabadulnak a munkafájlok, újabb szkiptek vagy további programok számára.

 


A megnyitott munkafájlból, adatok kiolvasása:
  1. fread() függvénnyel. TESZT
    $munkafajl= fopen("adatok.txt", "r"); // Fájl megnyitása, beolvasására.
    // Megnyitott fájlból, 20 bájt kiolvasása.
    $kiolvasando = fread($munkafajl, 20);
    // Megnyitott fájlból, 1 karakter beolvasása.
    $kiolvasando = fread($munkafajl, 1);
    // Megnyitott fájl tartalmának kiolvasása, karakterenként.
    do {$egy_karakter = fread($munkafajl, 1); $adatokbol .= $egy_karakter; }
    while ($egy_karakter);


    String típusú értéket ad vissza.
    Ha számokat akarunk kiíratni, akkor a beolvasott értéket, a megfelelő típus-átalakítással (int), egész számmá kell konvertálni.
    $kiolvasando = (int) fread($munkafajl, 20);

    Elsőre, annyi adatot olvas ki, amennyi bájtot meghatározunk. PL: 20 bájt.
    Ha megismételjük a fread() függvényhívást, akkor a következő 20 bájtot olvassa ki.
    Ha már nincs 20 bájtnyi adat, akkor a maradék adatokat olvassa be.

    Mi a különbség a fread() és fgets() függvény között.

  2. fgetc() függvény.Egyszerre egy karaktert olvas be. TESZT
    Ha, elérte a beolvasandó fájl tartalmának utolsó karakterét, hamis (false) értéket ad eredményül.
    $fm= fopen("adatok.txt", "r"); // Fájl megnyitása, beolvasására.
    $egy_karakter = fgetc($fm); // Egy karakter beolvasása.

  3. feof() függvénnyel.
    Közli, hogy a fájlmutató, mikor ér a fájl tartalmának végére.
    Hasznos például a while ciklussal történő, fájl tartalmának kiolvasásánál.

  4. fgets() függvénnyel.
    Mi a különbség a fread() és fgets() függvény között

  5. fgetcsv() függvénnyel. A csv kiterjesztésű fájlokhoz. Microsoft Excel vesszővel tagolt fájl.

  6. fputs() függvénnyel.
    Funkcionálisan teljes mértékben megegyezik, az fwrite() függvénnyel
    fputs(file,string,length)
    <?php
    $mf = fopen("test.txt","w");
    echo fputs($mf,"Hello World. Testing!");
    fclose($mf);
    ?>
    Kimeneten a fenti kódnak, a következő eredménye lesz: 21

 


A megnyitott munkafájlból, teljes tartalom kiolvasása:
  1. file() függvénnyel. TESZT
    Igen hasznos mindaddig, még a PHP rendelkezésére álló memória el nem fogy.

  2. fpassthru() függvénnyel.
    A fájl tartalmának beolvasási művelete után, autómatikusan bezárja a fájlt.

  3. readfile() függvénnyel.

 


Az eddigi függvényeket, csak szekvenciális adatkezelésre tudjuk használni.
Ez annyit jelent, hogy a meglévő fájlokból csak abban a sorrendben érhetünk el adatokat, amilyen sorrendben tartalmuk íródott.
Röviden, a fájlpozíció-jelzőt csak előre tudtuk mozgatni, vissza nem.

 


Állományadatok véletlenszerű lekérdezése:

Mozgassuk a fájlpozíció-jelzőt előre-hátra úgy, hogy az olvasandó fájlt, minden alkalommal meg keljen nyitnunk.
Azzal, hogy a fájlpozíció-jelzőt a tartami részen belül, tetszőleges helyre tudjuk mozgatni, tetszőleges tartalmi részt írathatunk ki.
A fájlpozíció-jelző elmozdulási értékét, bájtban határozzuk meg.
Példáinkban: $fm változó, a fájl-megnyitása és megnyitott-fájl szavak, rövidítését helyettesíti.(Természetesen, mindenki olyan változónevet írhat helyette, mely neki színpatikus.)

  1. fseek() függvénnyel.
    Példa: A fájlpozíció-jelzőt, az állomány 10-dik bájtja mögé mozgatjuk. Tartalmi rész kiíratása, a 11-ik bájtjával kezdődik.
    $fm= fopen("adatok.txt", "r"); // Fájl megnyitása, beolvasására.
    fseek($fm, 10); // A fájlpozíció-jelzőt, az állomány 10-dik bájtja mögé mozgatjuk.
    $egy_karakter= fgetc ($fm); // Az fgetc() függvény egyetlen karaktert olvas be, jelen esetben a 11-ik karaktert

      Megadhatunk egy harmadik értéket is: fseek($fm, eltolás, honnét);
    • SEEK_SET: az állomány kezdete + eltolás.
    • SEEK_CUR: az aktuális pozíció + eltolás (ez az alapértelmezett érték).
    • SEEK_END: az állomány vége + eltolás.
    <?php
    $file = fopen("test.txt","r");
    //Tartalmi rész beolvasásának kezdő pozíciója
    fseek($file,"15");
    //A rewind() függvény, pozíció-jelzőt, visszaállítja a fájl elejére
    rewind($file);  
    //Lezárjuk a megnyított fájlt.
    fclose($file);
    ?>

  2. ftell() függvénnyel.
    Kiolvashatjuk, azaz ki is írathatjuk a pillanatnyi fájlpozíció-jelző helyzetét, bájtban értendő.
    <?php
    $file = fopen("test.txt","r");
    // print current position
    echo ftell($file);
    // change current position
    fseek($file,"15");
    // print current position again
    echo "<br />" . ftell($file);
    fclose($file);
    ?>
    A fenti kód kimenete a következő lesz: 0; és 15

 


Fájlinformációk lekérdezése Fájlinformációk

A file_exists("Fájl Elérési útvonal")
Ha létezik akkor (true) igaz, ha nem létezik akkor (false) hamis értékkel tér vissza.
Példa: file_exists("/home/mappa/adatfájl.dat")

A filesize() függvény
A fájból kiolvasandó bájtok mennyiségét határozza meg, és ha hibába ütközik, akkor (false) hamis értékkel tér vissza.
Példa: filesize("/home/mappa/adatfájl.dat")

 


Idővel kapcsolatos fájltulajdonságok lekérdezése Idővel kapcsolatos Fájlinformációk

A filectime() függvény.
A fájl változásának utólsó idejét adja meg.
Ha a fájl maga "megváltozik", ha éppen létrejön vagy tartalmát módosítják (Írási műveletet végeznek rajta).
Illetve, ha a hozzá kapcsolódó fájlelérési jogosultságok megváltoznak

A filemtime() függvény.
A fájl módosításának utólsó idejét adja meg.
Ha a fájl maga módosul, ha éppen létrejön vagy tartalmát módosítják.


A getdate() függvény.
Dátuminformációt tároló asszociatív tömböt hoz létre és adja vissza a hívás pontjára.
A év (year), hónap (month), nap (mday), óra (hours), perc (minutes), másodperc (seconds) formában. Az előállítött értéket kinyerés érdekében egy sztring típusú változóhoz rendeljük. Példa a hónap elérésére: $honap('month');

 


 

 


A PHP belső mutatója, az állománypozíció-jelző.
Azt a pozíciót, pontot, helyet jelöli ki az aktuális, azaz megnyitott fájlban, ahol a következő műveletet fog, végrehajtásra kerülni.