Segédletek.hu
Segédletek weblap szerkesztéshez!
Fórum:
Postaláda:
Szavazás:
Hány éves vagy?
Segédletek:
Linkek:
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:

Az egyszerűség kedvéért egy fájlba tettem mindent. Legyen mondjuk konyvtar.php
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:
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.
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!

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><DIR></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 |
|

