Autor | Zpráva | ||
---|---|---|---|
dragon124 Profil |
#1 · Zasláno: 10. 10. 2012, 16:43:41
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 |
#2 · Zasláno: 10. 10. 2012, 17:35:14
funkci glob znáte?
|
||
peta Profil |
#3 · Zasláno: 11. 10. 2012, 10:08:48
<?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 |
#4 · Zasláno: 11. 10. 2012, 21:35:47
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);
|
||
Časová prodleva: 4 dny
|
|||
peta Profil |
#5 · Zasláno: 16. 10. 2012, 07:42:15
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 |
||
Časová prodleva: 12 let
|
0