Листване на директория
Автор: LinuxBG
Този урок е написан по заявка на Smirnoff, но всеки може да го чете, като първо ви предлагам да се запознаете с предишният ми урок за индекисране на файлове от директория!
Новото нещо в този код ще бъде функцията urlencode(). Тази функция енкоудва URL адресите (пример: space става %20)
Ето го и самият код:
<?php
$getDIR = $_GET["dir"]; // Взимаме директорията в която се намираме в момента
if(isset($_GET["dir"]) and !empty($_GET["dir"]))
{
if(count(explode("..",$getDIR)) > 1)
{
print "АХА ... НЯМА ДА СТАНЕ ТАЯ :)"; // Защита от ".."
}
else
{
if(!is_dir($getDIR))
{
print "Директорията която търсите не съществува!"; // Ако директорията не съществува
}
else
{
$dh = opendir($getDIR);
print "<img src=\"back.gif\"> <a href=\"javascript:history.go(-1)\">Предишна</a><br /><br />"; // Линк към предишната директория
while($item = readdir($dh)) // Предполагам че знаете вече ролята на този цикъл от предишният урок
{
if($item != "." and $item != "..")
{
if(is_dir($getDIR.$item))
{
print "<img src=\"dir.gif\"> <a href=\"index.php?dir=".urlencode($getDIR.$item)."/\">$item/</a><br />";
}
else
{
print "<img src=\"binary.gif\"> <a href=\"$getDIR$item\">$item</a><br />";
}
}
}
}
}
}
// КОДА НАДОЛУ Е 99% СЪЩИЯТ КАТО ТОЗИ ГОРЕ, НО АКО НЕ РАЗБИРАТЕ НЕЩО ПИТАЙТЕ!
else
{
$dir = "images/";
if(!is_dir($dir))
{
print "Директорията не съществува!";
}
else
{
$dh = opendir($dir);
while($item = readdir($dh))
{
if($item != "." and $item != "..")
{
if(is_dir($dir.$item))
{
print "<img src=\"dir.gif\"> <a href=\"index.php?dir=".urlencode($dir.$item)."/\">$item/</a><br />";
}
else
{
print "<img src=\"binary.gif\"> <a href=\"$dir$item\">$item</a><br />";
}
}
}
}
}
?>Тук не съм обяснявал много тъй като кода е като в предишният ми урок, които трябваше да прочетете 🙂


