Segédletek.hu

Segédletek weblap szerkesztéshez!
ingyen letöltés

| Mind | PHP | HTML | CSS | Java |
|Legújabbak |Legtöbbször olvasottak|

Könyvtár kezelés - 2. felvonás:

Sorozat - Könyvtár kezelés:

Egy fájl, és könyvtár listázó programot írunk PHP - vel. Annyival több, mint az előző ilyen script, hogy szép táblázatban jelennek meg az adatok, kiírja a fájl méretét, és lehet ugrálni a mappák között.

A végeredmény valami ilyesmi lesz:
Könyvtár szerkezet
Az egyszerűség kedvéért egy fájlba tettem mindent. Legyen mondjuk konyvtar.php
<?php ini_set("default_charset","utf-8");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<title>Könyvtár szerkezet</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<head>

Az első részben meghatároztuk a karakterkészletet, meg a doctype - t. Én most UTF8- at használtam, ehhez a konyvtar.php formátuma is legyen UTF-8. Ha nem megy, írd át kedved szerint. Most az egyszerűség kedvéért ebbe a fájlba írtam a stíluslapot is. Akkor folytassuk:

<style type="text/css">
body
{
  font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 12px;
        color: #000;
}
#k_body
{
  width:700px;
}
.k_table
{
  width:100%;
}

.k_header
{
  background-color:#789;
}

.k_row
{
  background-color:#E6E6FA;
}
a{
color: #000;
text-decoration:none;
}
</style>

Ez egy kicsit megdobja majd a táblázatunkat, hogy jól nézzen ki.

A folytatásban következik a php - rész, a program lelke.

</head>
<body>
<div id="k_body">
<a href="<?php echo $_SERVER['PHP_SELF'];?>">Induló pont</a>

<?php

function tree($dir)
{
  $file_array  =  array()//ebben lesznek a fájlok
  $dir_array   =  array()//ebben lesznek a könyvtárak
  $row         =  ""//Ez lesz a kimenet
   
  $row.= "<table class='k_table' cellpadding='5px' cellspacing='2px'>";
  $row.= "<tr class='k_header'>
            <td>Név:</td>
            <td>Méret:</td>
            <td>Módosítva</td>
          </tr>"
;
 
  $handle = opendir($dir);
  while ($f = readdir($handle))
  {
    if (is_file($dir."/".$f))
    {
      $file_array[] = $f;
    }
    elseif (is_dir($dir."/".$f) && $f!== ".")
    {
      $dir_array[] = $f;
    }
  }
  closedir($handle);
 
  sort($file_array);
  sort($dir_array);
 
  foreach ($dir_array as $value)
  {
    $row.= "<tr class='k_row'>";
    $row.= "<td><a href='konyvtar.php?url=$dir/$value'>".utf8_encode($value)."</a></td>";
    $row.= "<td>&lt;DIR&gt;</td>"
    $row.= "<td>".date("Y-m-d h:i:s",fileatime($dir."/".$value))."</td>"
    $row.= "</tr>";
  }
  foreach ($file_array as $value)
  {
    $row.= "<tr class='k_row'>";
    $row.= "<td>".utf8_encode($value)."</td>"
    $row.= "<td>".@filesize($dir."/".$value)/1024 ." KB</td>"
    $row.= "<td>".@date("Y-m-d h:i:s",fileatime($dir."/".$value))."</td>"
    $row.= "</tr>";
  }
 
  $row.= "</table>";
  return $row;
}

if($_GET['url'])
{
  $url = $_GET['url'];
}
else
{
  $url= ".";
}
echo tree($url);
?>
</div>
</body>
</html>

Egy függvényt írtam a könyvtár kiolvasására a jobb újrahasznosíthatóság érdekében. Bemenetnek egy könyvtár url - t vár. Külön tömbbe gyűjtöm ki a könyvtárakat, egy másikba a fájlokat. A $row változó lesz a függvény kimenete.
Miután megvan a két tömb, betűrendbe rendezem őket. Ezután a táblázat sorait hozom létre. A táblázat tartalmazza továbbá az utolsó módosítás dátumát, és a fájl méretét is. A fájl nevénél én használom az utf8_encode() fgv - t. Ha nem UTF-8 - ban írjuk a programot, ez nem kell.
Ezzel meg is van a függvény. Szépen kiírja a bemenő könyvtár tartalmát.
A kód utolsó részében vizsgáljuk a $_GET['url'] változó tartalmát. Ez lesz a bemenete a tree() fgv - nek. Így ha könyvtárt szeretnénk lépni, ezt így tehetjük meg: <a href="konyvtar.php?url=./konyvtarnev">konyvtarnev</b> Ezt megteszi helyettünk a program. A könyvtárnevek ilyen hivatkozások lesznek. Ez biztosítja, hogy tudjunk ugrálni.
Egy hibája van csak a kódnak, az, hogy mindig hozzácsapja az aktuális könyvtárt az url - hez. Így létrejöhet akár ./valami/../valami/.. url is. Így kell egy link: "iduló pont". Ez lenullzza az url - t, és így visszajutunk oda, ahol kezdtük.

Ez a kód így önmagában nem ér sokat, de könnyedén kiegészíthetjük úgy, hogy le is lehessen tölteni a fájokat, vagy amit csak szeretnénk. A fájloknál kiírathatjuk a létrehozás dátumát is, illetve több mindent.
Php file - ről bővebben!

Ezzel a kis segédlettel remélem, sikerült felkelteni az érdeklődést. Ha tetszik, és esetleg kibővítetted valahogy, és megosztanád másokkal, küldd be nekem, és szívesen kiteszem.

Jó munkát mindenkinek!

Írta: requiem - 2007-07-16 18:48:24

* Nem vagy bejelentkezve!
* Nem töltheted le a segédlet forrását egyben!
* Nem szavazhatsz a segédletre!
* Nem írhatsz a segédlethez tartozó fórum témába!


Firith 2007-07-22 12:25:25
Nem rossz, nem rossz, de táblázat helyett jobb lenne DataGrid-et használni, ha már úgyis van XHTML segédlet is.
Amúgy célszerü lenne a megjelenést elválasztani akódban, mert így kicsit nehezebb áttekinteni és módosítani
Önnek is jár évi 72 000 forint
állami támogatás lakás-előtakarékosság esetén. Válassza a Fundamentát!
www.fundamenta.hu

Miért fizetne többet?
Akciós élelmiszer, műszaki cikk, gyümölcs, bútor. Nézzen be, megéri!
www.tesco.hu

10.000 €-t keresni havonta
Hogyan keressünk pénzt könnyedén? Kezdjen pénzt keresni még ma!
www.penzt-keresni.net

Toyota készletakció
Auris Optimis modellek 1 000 000 Ft árelőnnyel! Részletek
www.toyota.hu

Licitálj, és nyerj egy
feledhetetlen kávézást a kedvenc sztároddal! További részletek itt:
www.ellenallhatatlanmeghivas.hu

Hirdessen itt