Listowanie katalogu
Z artykułu dowiemy się w jaki sposób możemy wylistować dowolny katalog.
Proste wyświetlanie
Jeśli chcemy wyświetlić na stronie listę wszystkich plików i katalogów w podanym folderze, należy użyć funkcji php readdir. Oto kod funkcji listującej (jako parametr podajemy ścieżkę do katalogu):
<?php
function folder_list($dir){
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
echo "$file<br>";
}
closedir($handle);
}
}
?>
Zaawansowane wyświetlanie
Poniżej przedstawiam skrypt, który wyświetli listę plików razem z ich rozmiarem oraz utworzy linki, dzięki czemu można będzie się poruszać po różnych katalogach. Plik ze skryptem należy nazwać "ex2.php".<?php
$path = $_GET['path'];
if(!isset($path))
{
$path = ".";
}
![]()
if ($handle = opendir($path))
{
$curDir = substr($path, (strrpos(dirname($path."/."),"/")+1));
print "Aktualny katalog: ".$curDir."<br>************************<br>";
print "Sciezka: ".dirname($path."/.")." <br>************************<br>";
![]()
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$fName = $file;
$file = $path.'/'.$file;
if(is_file($file))
{
print "[F] <a href='".$file."'>".$fName."</a> ".filesize($file)."B<br>";
}
if(is_dir($file))
![]()
{
print "[D] <a href='ex2.php?path=$file'>$fName</a><br>";
}
}
}
$up = substr($path, 0, (strrpos(dirname($path."/."),"/")));
print "[^] <a href='ex2.php?path=$up'>Przejdz katalog wyzej</a><br>";
![]()
closedir($handle);
}
?>
Więcej różnego typu skryptów listujacych katalogi można znaleźc na stronie funkcji readdir w Manualu PHP.
Źródła:
www.php.netmichalg @ 04-07-2006 18:03










