Mappa és file függvények

 

Gyakori mappa és fájlkezelési függvények.

Függvény neveLeírás
opendirMappák, könyvtárak megnyitására szolgáló függvény
readdirMegnyitott mappa, azaz, könyvtár tartalmának listázása.
is_readableEllenőrzi, hogy a megadott fájlnév olvasható-e:
is_fileMegadott fájlnév, rendes fájl-e.
file_existsMegadott URL címen, létezik a keresett fájl?
filesizeFájl méretének lekérdezésére szolgáló függvény.
fopenFájl megnyitása olvasásra vagy írásra.
fgetsAdatok kiolvasása egy fájlból. Alapértelmezett beolvasási hossz = 1024 bájt.
ftruncateFájl csonkolása meghatározott méretre.


File, azaz, fájlkezelési műveletekről bővebben. Katt ide!



opendir() függvény

$Konyvtar = opendir('URL');
Megkeresi és beazonosítja azon mappát (könyvtárat), melynek az elérési útvonalát, URL-jét megadtuk.


<?php
     $Konyvtar = opendir('URL');
?>

Vissza a lap elejére


readdir függvény

Az opendir('URL') függvénnyel beazonosított mappa (könyvtár) tartalmának lekérdezése:
Mappa-fájl-név, változó neve ez lesz = $mfnev
$mfnev = readdir($Konyvtar)
A beazonosított mappa tartalmának beolvasásához és azok tömb formátumban történő tárolásához, a while ciklust alkalmazzuk.


<?php
$Konyvtar = opendir('URL');
     while(false!==($mfnev = readdir($Konyvtar) ) )  {  $MappaAdatok[] = $mfnev; }
closedir($Konyvtar);

// A $MappaAdatok tömb, adatainak kiíratása.
foreach($MappaAdatok as $i => $adat) { echo $i.'---'.$adat.'<br>'; }
?>

Ha a lekérdezett mappa további mappákat és fájlokat is tartalmaz, külön-külön válogathatjuk a mappákat és fájlokat.

<?php
$Konyvtar = opendir('URL');
     while(false!==($mfnev = readdir($Konyvtar) ) )  {  $MappaAdatok[] = $mfnev; }
closedir($Konyvtar);

// Fájlok kiválogatásához, kiterjesztések meghatározása.
// Csak azon fájlok kellenek, melyek kiterjesztését meghatározzuk és változóhoz rendeljük.
$k0=".htm";   $k1=".html";   $k2=".css";   $k3=".js";   $k4=".php";   $k5=".jpg";
$k6=".gif";   $k7=".png";   $k8=".mp3";   $k9=".mp4";   $k10=".vtt";   $k11=".dat";
$k12=".txt";   $k15=".docx";   $kDb=".db";   $kn0="error_log";
 
$Mappak = array();          // Mappákat tároló tömb
$Fajlok = array();            // Fájlokat tároló tömb
$Fajlok[0]="0";
$Mi=0;                    // Mappákat tároló tömbbnél, elemek sorsámozása.
$Fi=0;                     // Fájlokat tároló tömbbnél, elemek sorsámozása.

// Mappák és fájlok szétválogatása, külön-külön tömbökbe.
foreach($MappaAdatok as $Tfindex => $ertek) {
	
     $KTn0=strcmp($kn0,$ertek);          // Értéke: egyezésnél=0; ha nem egyeznek akkor=1;
     $KT = strstr($ertek, ".");                  // Kiterjesztés lekérdezése, stringben található pont és azt követő karakterek.
		
    if($k0==$KT OR $k1==$KT OR $k2==$KT OR $k3==$KT OR $k4==$KT OR $k5==$KT OR $k6==$KT OR $k7==$KT
        OR $k8==$KT OR $k9==$KT OR $k10==$KT OR $k11==$KT OR $k12==$KT OR $k15==$KT OR $kDb==$KT OR $KTn0==0)
           {
               $Fajlok[$Fi]=$ertek;     $Fi=$Fi+1;
           }
    else { $Mappak[$Mi]=$ertek;     $Mi=$Mi+1; }
  }

// Mappák kiíratása.
foreach($Mappak as $index => $almappak) { echo $index." ".$almappak."<br />"; }

echo '<hr>';

// Fájlok kiíratása.
foreach($Fajlok as $i => $file) { echo $i." ".$file."<br />"; }

?>

Vissza a lap elejére


Gyakorláshoz, hozzunk létre egy test.txt fájlt, és másoljuk be a következő szöveget:

A test.txt file. Tartalma, php file function tesztelésére szólgál. Első mondat szövege. Második mondat szövege. Harmadik mondat szövege. Negyedik mondat szövege. Ötödik szöveg számokkal: 0,1,2,3,4,5,6,7,8,9




is_readable() függvény

Annak ellenőrizése, hogy a megadott fájlnév olvasható-e:
<?php
$file = "test.txt";
if(is_readable($file)) {  echo ("$file olvasható");  } 
else { echo ("$file nem olvasható"); }
?>

Eredmény:
test.txt olvasható




Vissza a lap elejére



A PHP egyes funkciói gyorsítótárazzák az adatokat, a jobb teljesítmény érdekében.
Ha egy fájlt többször ellenőrizni kell egy szkriptben, akkor a megfelelő eredmények elérése érdekében valószínűleg el akarjuk kerülni a gyorsítótárat.
Ehhez használjuk a clearstatcache () függvényt, mely törli a fájl állapotának gyorsítótárát.


is_file() függvény

Az is_file () függvény ellenőrzi, hogy a megadott fájlnév, rendes fájl-e.

Megjegyzés:
A függvény eredménye gyorsítótárazott. A clearstatcache () segítségével törölheti a gyorsítótárat.


<?php
$file = "test.txt";
if(is_file($file)) {
  echo ("$file egy rendes fájl");
} else {
  echo ("$file nem rendes fájl");
}

// Törölje a gyorsítótárat, ha ebben a szkriptben újra ellenőrizni akarja a fájlt.
clearstatcache();
?>

Eredmény:
test.txt egy rendes fájl

Vissza a lap elejére




file_exists() függvénny

Megadott URL címen és néven, létezik a keresett fájl?
<?php
$mf="./test.txt";
if(file_exists($mf))             // Létezik a keresett fájl?
	{echo "<b>A keresett fájl, létezik</b>";}
else {echo "<b>A keresett fájl nem található a megadott helyen,<br /> vagy nem létezik.</b>";}
?>

Eredmény:
A keresett fájl, létezik

Vissza a lap elejére




filesize() Funkció

Meghatározza lekérdezett fájl méretét.
<?php
echo filesize("test.txt");          // Lekérdezett fájl mérete
echo " bájt.<br />";

// Törölje a gyorsítótárat, ha a test.txt fájlt módosítja, és újból lekérdezi a méretét.
clearstatcache();
?>

Eredmény bájt-ban:
220 bájt.

Vissza a lap elejére




fopen() Funkció

Az állománypozíció-jelzőt, a fájl elejére állítja.
Az állományt, általunk meghatározott formában nyitja meg. ( r = olvasásra. Az r+ = írásra és olvasásra. )

A fread() függvénnyel kiolvasunk a test.txt fájl tartalmából annyi bájt-ot,
amennyit meghatározunk, jelen esetben ez az érték "220"

<?php
$munka_fajl="./test.txt";
if (!($mf = fopen($munka_fajl, "r"))) {die ("A (z) $munka_fajl állomány nem nyitható meg.");}

// Tartalmat változóhoz rendeljük, az adatok beolvasása(honnan, mennyi bajt); meghatározással.
$adatok_beolvasasa = fread ($mf, 220);

// A $adatok_beolvasasa változóban tárolt adatok, kiíratása.
echo "<p><span class='sargah'>$adatok_beolvasasa</span></p>";

fclose($mf); // Eddigi munkamenet lezárása.
?>

Eredmény:

A test.txt file. Tartalma, php file function tesztelésére szólgál. Első mondat szövege. Második mondat szövege. Harmadik mondat szövege. Negyedik mondat szövege. Ötödik szöveg számokkal: 0,1,2,3,4,5,6,7,8,9

Vissza a lap elejére




fgets() Funkció

Az alapértelmezett beolvasási hossz = 1024 bájt. fgets(file)
A hossz meghatározásával, beolvasási hossz értékét megváltoztathatjuk. fgets(file,100)
<?php
$mf = fopen("test.txt", "r");        // Munkafájl elérési útvonala. Megnyitása olvasásra (" r ")
echo fgets($mf);                         // Az alapértelmezett beolvasási hossz = 1024 bájt.
     // echo fgets($mf,100);              // Így: Meghatározott beolvasási hossz = 100 bájt.
fclose ($mf);                             // Megnyitott munkafájl bezárása.
?>

Eredmény, alapértelmezett beolvasási hossznál:

A test.txt file. Tartalma, php file function tesztelésére szólgál. Első mondat szövege. Második mondat szövege. Harmadik mondat szövege. Negyedik mondat szövege. Ötödik szöveg számokkal: 0,1,2,3,4,5,6,7,8,9

Vissza a lap elejére






ftruncate() és clearstatcache() Funkció

PHP clearstatcache () Funkció
Példa:
1. Lekérdezzük a fájl méretét.
2. Csonkoljuk a fájlt, meghatározott méretre.
3. Gyorsítótár törlése.
4. Újból lekérdezzük a fájl méretét.

<?php
echo filesize("test.txt");          // Lekérdezett fájl mérete
echo "<br />";

$file = fopen("test.txt", "a+");
// Vigyázz!
// A ftruncate() függvény, csonkolja a fájlt megadott méretig, és a többi tartalmat törli
ftruncate($file,100);
fclose($file);

// Törölje a gyorsítótárat.
clearstatcache();

// Ellenőrizze újra a fájlméretet.
echo filesize("test.txt");
?>
220 Ez volt az eredeti mérete.
100 Ez lett a csonkolás utáni mérete.
A test.txt fájl eredeti tartalma: (filesize mérete = 220 )
A test.txt file. Tartalma, php file function tesztelésére szólgál. Első mondat szövege. Második mondat szövege. Harmadik mondat szövege. Negyedik mondat szövege. Ötödik szöveg számokkal: 0,1,2,3,4,5,6,7,8,9
Csonkolás után a test.txt fájl tartalma ez lesz: (filesize mérete = 100 )
A test.txt file. Tartalma, php file function tesztelésére szólgál. Első mondat szövege. Másod




Vissza a lap elejére