Autor Zpráva
dragon124
Profil
Dobrý den,
Chtěl bych se zeptat, jak udělat, aby se do pole zapsal seznam souborů co mam v jedný složce. Například mam v jedný složce index.php a download.php. Jak udělam, aby se mi do prvního prvku pole napsalo index.php a do druhého download.php?
Předem děkuji za všechny odpovědi. Na pořadí nezálezí
Tori
Profil
funkci glob znáte?
peta
Profil
<?php
$dir = isset($_GET["dir"]) ? urldecode($_GET["dir"]) : ".";
$dir = str_replace('..',"",$dir);    //pokus zabranit dostat se o slozku vys
$dirhandle = opendir($dir);
$dirs       = array();
$files     = array();
while ($rec = readdir($dirhandle))
    {
    if ($rec!=="")
        {
        if (!is_dir($dir."/".$rec))
            {
            $files[] = $rec;
            }
        else    {
            if ($rec!='..')
                {
                $dirs[] = $rec;
                }
            }
        }
    }
closedir($dirhandle);
sort($dirs);
sort($files);
$t  = "\n<b>dirs</b>";
foreach ($dirs  as $key => $value)
    {
    $t .= "\n".'<br><a href="showdir.php?dir='. urlencode($dir."/".$value) .'">'. $value .'</a>';
    }
$t .= "\n<hr>\n<b>files</b>";
foreach ($files as $key => $value)
    {
    $t .= "\n<br>$value";
    }
echo $t;
?>
Tori
Profil
peta:
Ad: $dir = str_replace('..',"",$dir); //pokus zabranit dostat se o slozku vys - tímhle ale zároveň umožníte zobrazit obsah jakékoli složky v rootu. Spíš bych použila $dir = basename($dir);
peta
Profil
Ano, ten radek bych vyhodil nebo nahradil jinym. To je kdovijak stary kod.
aaa/bbb/../ccc - zrusi i takovyto zapis, coz je spatne
aaa/bbb/..../ccc - premeni na aaa/bbb/../ccc, coz je tez spatne, protoze to nekdo muze udelat umyslne, aby se dostal mimo root adresare ..../..../aaa/bbb

Mozna za zminku stoji, ze par prikladu je primo v dokumentaci
http://www.php.net/function.readdir

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0