Webmaster общности: Predpriemach.com | SearchEngines.bg

    Листване на директория

    Автор: 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 />";
    }
    }
    }
    }
    }
    ?>

    Тук не съм обяснявал много тъй като кода е като в предишният ми урок, които трябваше да прочетете 🙂

    Оставете коментар