Főoldal

Opendir alapismeret.

Kilépés: Kezdő oldalra. Kilépés: PHP kezdő oldalra. Kilépés: JavaScript kezdő oldalra.


if (is_dir($dir)) --- Ellenőrzi, hogy a megadott könyvtár létezik vagy nem. ( true vagy false )

Példa:
$dir = ".";       // Itt határozzuk meg, a kiválasztott könyvtár elérési útvonalát. (URL).
if (is_dir($dir)) { echo 'A keresett könyvtár, létezik!';}
else { echo 'A keresett könyvtár, nem található! Vagy hibás az URL meghatározás.';}

opendir() = Nyisson meg egy könyvtárat, tömb formátumba olvassa be a tartalmát.
opendir(path, context)
path: Kötelező. Megadja a megnyitandó könyvtár elérési útját.
context: Választható. Megadja a címtárleíró kontextusát. A kontextus olyan opciók halmaza, amelyek módosíthatják az adatfolyam viselkedését

readdir() = Sorolja fel az összes tömb formátumba tárolt bejegyzést.
readdir(dir)
dir: Választható. Megadja a korábban opendir()-rel megnyitott könyvtárkezelő erőforrást.
Ha ez a paraméter nincs megadva, akkor a rendszer az opendir() által utoljára megnyitott hivatkozást feltételezi


Az opendir elérési útvonalak (URL) meghatározásai: ( xxxx -ek helyére írjuk, a keresett könyvtár nevét. )
$dir = "."; --- Az a könyvtár, melyben a lekérdező fájl is jelen van.
$dir = "xxxx"; --- Az a "könyvtár", mely azon könyvtárban van, melyben a lekérdező fájl is jelen van.
$dir = "../xxxx"; --- Az a "könyvtár", mely azon könyvtáron kívül van, melyben a lekérdező fájl szerepel.

$konyvtar = opendir($dir)




1. Példa.

<?php
   // Megjegyzés:
   // Ha az URL egy pont, ".";    --- Akkor az a könyvtár, melyben a lekérdező fájl is, jelen van.

$dir = ".";         //  Keresett könyvtár elérési útvonala, URL-je 
        echo 'Könyvtár URL-je: '.$dir.'<br><br>';
		
   //  is_dir($dir) ---- Keresett könyvtár létezik vagy nem. ( true vagy false )
   //  opendir($dir) --- Nyissa meg a megadott könyvtárat, tartalmát tömb formátumba tárolja. 
   //  readdir($dh) --- Tömb formátumba tárolt tartalmat, olvassa el. 

$Ds=0;
if (is_dir($dir)){  echo '<b>Tartalma:</b><br>';
        if ($mf = opendir($dir)){
                while (($DirAdat = readdir($mf)) !== false){
                         // Könyvtárban tárolt adatok, kiíratása.
                     echo "Nev".$Ds.": " . $DirAdat . "<br>"; $Ds++;
                    }
            closedir($mf);   // Megnyitott " $mf "  munkafolyamat bezárása. 
        }
}
else {echo 'A keresett könyvtár, nem létezik! Vagy hibás az URL meghatározás';}
?>

---------- Fenti program eredménye.----------

Könyvtár URL-je: .

Tartalma:
Nev0: szoveg.docx
Nev1: opendir_s.php
Nev2: images
Nev3: alt_formcss.css
Nev4: Z-leirasok_tesztelese.php
Nev5: opendir.php
Nev6: j_foto.jpg
Nev7: opendir.css
Nev8: W_oldal.dat
Nev9: .
Nev10: ..
Nev11: W_kads.txt
Nev12: p_foto.png
Nev13: Op_tesztek

2. Példa.

Első példa eredményénél, az útvonal meghatározástól függ, hogy a " Nev: . " és " Nev: .. " az elérési útvonal jelölését szemlélteti, ez nem a lekért könyvtár tartalma.
Második példában, csak a lekért könyvtár (mappa) tartalmát íratjuk ki. Az egy és kettő pontot tartalmazó adatokat, nem íratjuk ki.

<?php
   // Megjegyzés:
   // Ha az URL egy pont, ".";    --- Akkor az a könyvtár, melyben a lekérdező fájl is jelen van.

$dir = ".";         //  Keresett könyvtár elérési útvonala, URL-je 
        echo 'Könyvtár URL-je: '.$dir.'<br><br>';

$Ds=0;
if (is_dir($dir)){  echo '<b>Tartalma:</b><br>';
        if ($mf = opendir($dir)){
                while (($DirAdat = readdir($mf)) !== false){
                              $pont1=".";  $pont2="..";
                            if($DirAdat!==$pont1 AND $DirAdat!==$pont2)
                                { echo "Nev".$Ds.": " . $DirAdat . "<br>";   $Ds++; }            // Könyvtárban tárolt adatok, kiíratása.
                    }
            closedir($mf);   // Megnyitott " $mf "  munkafolyamatot, zárja be. 
        }
}
else { echo 'A keresett könyvtár, nem létezik!<br> Vagy hibás az URL meghatározás'; }
?>

---------- Fenti program eredménye.----------

Könyvtár URL-je: .

Tartalma:
Nev0: szoveg.docx
Nev1: opendir_s.php
Nev2: images
Nev3: alt_formcss.css
Nev4: Z-leirasok_tesztelese.php
Nev5: opendir.php
Nev6: j_foto.jpg
Nev7: opendir.css
Nev8: W_oldal.dat
Nev9: W_kads.txt
Nev10: p_foto.png
Nev11: Op_tesztek



3. Példa.

Kapott adatokat jobban áttekinhessük, vizuálísan is kiírathatjuk az adatokat, ha eltérő színekkel kiemeljük azokat.

Vizuálís válogatáshoz meghatározhatunk kiterjesztéseket, változóhoz rendeléssel.
$kn0="error_log";
$kp1="."; $kp2="..";
$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";

Kiemelő színek meghatározása:
<style>
.szin1{font-weight: bold; background-color: yellow; border:2px solid orange; padding-right: 2px; padding-left: 2px;}
.szin2{font-weight: normal; color: blue; padding-right: 5px; padding-left: 5px;}
.szin3{font-weight: normal; background-color: #ccff33; padding-right: 5px; padding-left: 5px;}
.szin4{font-weight: normal; background-color: aqua; padding-right: 5px; padding-left: 10px;}
.szin5{font-weight: normal; background-color: wheat; padding-right: 5px; padding-left: 15px;}
</style>

Csoportosítás:
Könyvtárak (Mappák) = szin1
$k0; $k1; $k2; $k3; $k4;) = szin2 --- ( Web fájlok )
$k5; $k6; $k7; = szin3 --- ( Fotó fájlok )
$k15; = szin4 --- ( Word fájlok )
Valami = szin5 --- ( Minden más, amit nem választottunk ki. )

Csoportba rendezett változóknak, eltérő színt határozunk meg.
------ Mappa kiemelése = szin1 -------
------ Web típusú fájlok kiemelése = szin2 -------
------ Kép fájl kiemelése = szin3 -------
------ Word fájl kiemelése = szin4 -------
------ Nem kiválasztottak = szin5 -------


<?php
$dir = ".";         //  Keresett könyvtár elérési útvonala, URL-je 
    echo 'Könyvtár URL-je: '.$dir.'<br><br>';

$Ds=0;
if (is_dir($dir)){ echo '<b>Tartalma:</b><br><br>';
  if ($mf = opendir($dir)){
    while (($DirAdat = readdir($mf)) !== false){
		$strh = strlen($DirAdat);
		if($strh>2){ $Letezok[$Ds] = $DirAdat;  $Ds++;}       // Minden létező mappa és fájl, ami a könyvtárban van.
    }
    closedir($mf);   // Megnyitott munkafolyamatot, zárja be. 
  }

      // Kiválogatáshoz,  a szükséges kiterjesztések meghatározása.
         $k0=".htm";  $k1=".html"; $k2=".css"; $k3=".js"; $k4=".php";
		 $k5=".jpg";   $k6=".gif";    $k7=".png";
		 $k15=".docx";

$idsz=1;
$ki=0;
foreach($Letezok as $index => $adat) {
                 $KT = strstr($adat, ".");
                 $nevhossz = strlen($adat);
                 $PontVan = strpos ($adat, "."); 
                               // $kktomb[] tárolja a könyvtárban talált, további könyvtárakat.
    if($nevhossz>2){
            if($PontVan == false){ $kktomb[$ki]=$adat; $ki++; 
                      echo $idsz.' = <span class="szin1">'.$adat.'</span><br>';}
            else if($k0==$KT OR $k1==$KT OR $k2==$KT OR $k3==$KT OR $k4==$KT){
                      echo $idsz.' = <span class="szin2">'.$adat.'</span><br>';}
            else if($k5==$KT OR $k6==$KT OR $k7==$KT){
                      echo $idsz.' = <span class="szin3">'.$adat.'</span><br>';}
            else if($k15==$KT){
                      echo $idsz.' = <span class="szin4">'.$adat.'</span><br>';}
               else{echo $idsz.' = <span class="szin5">'.$adat.'</span><br>';}
        $idsz++;
    }  
	   
  }
      $Ktksz= count($kktomb);             // Könyvtárban talált, további könyvtárak (mappák) száma.
      echo '<br>Könyvtárban talált,<br> mappák száma = '.$Ktksz;
}
else {echo 'A keresett könyvtár, nem létezik!<br> Vagy hibás az URL meghatározás!';}
?>

---------- A fenti program eredménye. ----------


Könyvtár URL-je: .

Tartalma:

1 = szoveg.docx
2 = opendir_s.php
3 = images
4 = alt_formcss.css
5 = Z-leirasok_tesztelese.php
6 = opendir.php
7 = j_foto.jpg
8 = opendir.css
9 = W_oldal.dat
10 = W_kads.txt
11 = p_foto.png
12 = Op_tesztek

Könyvtárban talált,
mappák száma = 2






4. Példa.
Könyvtárban talált adatok, és az adatok között talált,
további könyvtárak tartalmának kiíratása.

Program leírása

<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<title>Opendir</title>

<link href="xxxxxx.css" rel="stylesheet" type="text/css" />
<style>
.opentabla{width:95%; margin-right: auto; margin-left: auto; border: 4px outset blue;}
.opentabla td{vertical-align:top; font-size: 14px; font-family: Times New Roman; font-weight: normal; padding: 5px;}
.szinx{font-weight: bold; background-color: gray; color: white; padding-right: 2px; padding-left: 2px;}
.szin1{font-weight: bold; background-color: yellow; border:2px solid orange; padding-right: 2px; padding-left: 2px;}
.szin2{font-weight: normal; color: blue; padding-right: 5px; padding-left: 5px;}
.szin3{font-weight: normal; background-color: #ccff33; padding-right: 10px; padding-left: 20px;}
.szin4{font-weight: normal; background-color: aqua; padding-right: 5px; padding-left: 10px;}
.szin5{font-weight: normal; background-color: wheat; padding-right: 5px; padding-left: 20px;}
</style>
</head>
<body>

<h1>Opendir teszt.</h1>

<table border="1" cellpadding="5" cellspacing="2" class="opentabla">
<tr>
<th>Lekérdezett könyvtárban lévő<br> mappák és fájlok.</th>
<th>Könyvtárban talált,<br>könyvtárak.</th>
<th>Lekérdezett könyvtárban lévő,<br>további könyvtárak tartalma.</th>
</tr>
<tr>
<td><p>
<?php
$dir = ".";         //  Itt határozzuk meg, keresett könyvtár elérési útvonalát, URL-jét.
           echo 'Kiválasztott: '.$dir.'<br><br>';

 $Tmunka=0; 
if (is_dir($dir)){
    $Ls=0;
    if ($mf = opendir($dir)){
           while(false !== ($mfnev = readdir($mf))) 
              {
                     $Letezok[$Ls] = $mfnev;  $Ls++;
              }
         closedir($mf);
	}
   $Tmunka=1;  // További munka feltételének értéke.
}
else { echo '<mark>A keresett '.$dir.' könyvtár, nem létezik!<br> Vagy hibás az URL meghatározás!</mark><br>'; }

   
if($Tmunka==1){
      // Kiemeléshez, kiterjesztések meghatározása.
               $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"; $k13=".db";
               $k15=".docx";  $k16=".xml";

foreach($Letezok as $index => $adat) {
	$KT = strstr($adat, ".");      // Kiemeléshez, kiterjesztések beazonosítás.
	$pont1='.'; $pont2='..';        // Elérési útvonalak mintája.
          $kdr1=$dir;   $kdr2='/'.$adat;    $cutv=$kdr1.$kdr2;
          $control=is_dir($cutv);                         // Az adat = könyvtár? ( igen vagy nem )
	
	if($adat==$pont1 OR $adat==$pont2)
	    {  echo '<span class="szinx">'.$index.'</span> = <span class="szinx">'.$adat.'</span><br>'; }
		
	else if($control== true)
	    { echo $index.' = <span class="szin1">'.$adat.'</span><br>';   }
		
	else if($k0==$KT OR $k1==$KT OR $k2==$KT OR $k3==$KT OR $k4==$KT)
	    { echo $index.' = <span class="szin2">'.$adat.'</span><br>'; }
	
	else if($k5==$KT OR $k6==$KT OR $k7==$KT)
	    { echo $index.' = <span class="szin3">'.$adat.'</span><br>'; }
			
	else if($k8==$KT OR $k9==$KT)
	    { echo $index.' = <span class="szin3">'.$adat.'</span><br>'; }
	
	else if($k15==$KT OR  $k16==$KT)
	    { echo $index.' = <span class="szin4">'.$adat.'</span><br>'; }
	
	else if($k10==$KT OR $k11==$KT OR $k12==$KT OR $k13==$KT)
	    { echo $index.' = <span class="szin5">'.$adat.'</span><br>'; }
		
	else{ echo $index.' = <b>'.$adat.'</b><br>'; }
}

echo'</p></td><td><p>';
           // Mappák kiválogatása. File nem kell.
$ssz=0;
foreach($Letezok as $index => $adat) {
	
	$M1 = $dir;     $M2 = '/'.$adat;        
	$UTV = $M1.$M2;
	if (is_dir($UTV)) { $VM = 1; }       // Mappa, akkor feltétel értéke = 1
	else{ $VM = 0; }                           // Nem mappa, akkor feltétel értéke = 0
 
	$st1=".";	$st2="..";	               // Minták. Ha az adat, csak egy vagy kettő pont, akkor nem kell. 

        if($VM ==1 AND $adat!=$st1 AND $adat!=$st2)
            {
                  $CsMappak[$ssz]=$adat;
                      echo $ssz.' = <span class="szin1">'.$adat.'</span><br>';
                  $ssz++;
            }
}

    $Mappakszama=$ssz;	
	if($Mappakszama == false) { echo'Nincs talált mappa <br>'; }
	
	echo '<br><br>Találtak száma = '.$Mappakszama;

echo'</p></td><td><p>';

// ------ Könyvtárban talált könyvtárak, útvonalának meghatározása.

for($i=0; $i<$Mappakszama; $i++){   
	$Mappa1 = $dir;
	$Mappa2 = '/'.$CsMappak[$i];        // A tömb [0] elem tartalmazza, az első talált mappa nevét.
	$Eutvonal = $Mappa1.$Mappa2;
             echo '<br><br><b>Útvonal = '.$Eutvonal.'<b><br>';
			 
    // Függvény meghívása, paraméter átadással.
             Feldolgozas($Eutvonal);	
}

}     // Tmunka Feltétel lezárása.	 
// ------------------------------------------------------


function Feldolgozas($Eutvonal) { 
	
$MKonyvtar = opendir($Eutvonal);            // Könvtárban talált. Másik Könyvtár, útvonala.

while(false !== ($mfnev = readdir($MKonyvtar)))
     {
            $LetezokM0[] = $mfnev;
     }
     closedir($MKonyvtar);

      // Kiemeléshez szükséges kiterjesztések meghatározása.
              $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"; $k13=".db";
              $k15=".docx"; $k16=".xml";
$idsz=1;
foreach($LetezokM0 as $index => $mappa) {
                    $KT = strstr($mappa, ".");             // Kiterjesztés meghatározása.
                    $nevhossz = strlen($mappa);          // Az adat hossza.
    if($nevhossz>2){
            if($k0==$KT OR $k1==$KT OR $k2==$KT OR $k3==$KT OR $k4==$KT) {
                     echo $idsz.' = <span class="szin2">'.$mappa.'</span><br>'; }
			
            else if($k5==$KT OR $k6==$KT OR $k7==$KT) {
                     echo $idsz.' = <span class="szin3">'.$mappa.'</span><br>'; }
			
            else if($k8==$KT OR $k9==$KT) {
                     echo $idsz.' = <span class="szin3">'.$mappa.'</span><br>'; }
			
            else if($k15==$KT OR  $k16==$KT) {
                     echo $idsz.' = <span class="szin4">'.$mappa.'</span><br>'; }
			
            else if($k10==$KT OR $k11==$KT OR $k12==$KT OR $k13==$KT) {
                     echo $idsz.' = <span class="szin5">'.$mappa.'</span><br>'; }
			
                else{ echo $idsz.' = <span class="szin1">'.$mappa.'</span><br>'; }
        $idsz++;
    }
}

}

?>
</p></td>
</tr></table>


Vissza az oldal elejére.


Kiemelő színek, és értelmezésük:
1. ------ Elérési útvonalak ( . vagy .. ) = szinx -------
2. ------ Mappa kiemelése = szin1 -------
3. ------ Web típusú fájlok kiemelése = szin2 -------
4. ------ Kép és zenei fájl kiemelése = szin3 -------
5. ------ Word fájl kiemelése = szin4 -------
6. ------ Adattárolók: ".vtt"; ".dat"; ".txt"; ".db"; = szin5 -------

Fenti program eredménye.

Lekérdezett könyvtárban lévő
mappák és fájlok.
Könyvtárban talált,
könyvtárak.
Lekérdezett könyvtárban lévő,
további könyvtárak tartalma.

Kiválasztott: .

0 = szoveg.docx
1 = opendir_s.php
2 = images
3 = alt_formcss.css
4 = Z-leirasok_tesztelese.php
5 = opendir.php
6 = j_foto.jpg
7 = opendir.css
8 = W_oldal.dat
9 = .
10 = ..
11 = W_kads.txt
12 = p_foto.png
13 = Op_tesztek

0 = images
1 = Op_tesztek


Találtak száma = 2



Útvonal = ./images
1 = j_foto.jpg
2 = tesztek
3 = xkads.txt
4 = p_foto.png
5 = xoldal.dat


Útvonal = ./Op_tesztek


Vissza az oldal elejére.