dir list név szerint...
Hello
Adott egy könyvtár listázó script, ami dátum szerint listázza ki a fájlokat.. mit kéne átírnom, hogy fájlnév szerint listázzon?
A válaszokat elöre is köszi...
Davee
A kód pedig itt:
■ Adott egy könyvtár listázó script, ami dátum szerint listázza ki a fájlokat.. mit kéne átírnom, hogy fájlnév szerint listázzon?
A válaszokat elöre is köszi...
Davee
A kód pedig itt:
<?php
$list = $_GET["list"];
$menu = $_GET["menu"];
function getParentDir($path)
{
for($i = 0; $i <= strlen($path)-1; $i++)
{
if($path[$i] == '/') $num[] = $i;
}
return substr($path, 0, $num[count($num)-2]);
}
if(!empty($list))
{
if(substr_count($list, "..") > 0 OR !file_exists("smsdata/".$list)) exit;
$dir = "smsdata/".$list;
}
else
$dir = "smsdata";
$d = dir($dir);
while ($obj = $d->read()) {
if(is_dir($dir."/".$obj))
$dirs[] = $obj;
else
if($obj[0] != '.')
$files[] = $obj;
}
$d->close();
if($dir == "smsdata")
unset($dirs[0]);
$dirlist = array_merge($dirs, $files);
unset($dirlist[0]);
$elem = count($dirlist);
echo '<div align="center">';
echo '<table border="0" cellspacing="0">';
echo "<tr>";
echo "<td width=\"16\"> </td>";
echo "<td width=\"200\">Fájlnév</td>";
echo "<td width=\"60\" align=right>Típus</td>";
echo "<td width=\"80\" align=right>Méret (byte)</td>";
echo "<td width=\"120\" align=right>Dátum</td>";
echo "<td width=\"16\"> </td>";
echo "</tr>";
$id = 1;
for($x = 0; $x <= $elem-1; $x++)
{
$cc = $dirlist[$id++];
$path_parts = pathinfo($dir."/".$cc);
switch($cc)
{
case "..":
$col = '<a href="/listview.php?list='.getParentDir($list."/".$cc).'"><img src="/icons/16/parent.gif" width="16" height="16" border="0"></a>';
$linktype = "par";
break;
default:
if(is_dir($dir."/".$cc) and !empty($cc))
{
$col = '<a href="/listview.php?list='.(empty($list)?($cc):($list."/".$cc)).'"><img src="/icons/16/dir';
$filedate = date("Y-m-d H:i:s", filemtime($dir."/".$cc));
if(file_exists($dir."/".$cc."/.new"))
$col .= 'new.gif" width="16" height="16" border="0"></a>';
elseif(file_exists($dir."/".$cc."/.construct"))
$col .= 'construct.gif" width="16" height="16" border="0"></a>';
elseif(file_exists($dir."/".$cc."/.del"))
$col .= 'del.gif" width="16" height="16" border="0"></a>';
else
$col .= '.gif" width="16" height="16" border="0"></a>';
$linktype = "dir";
}
else
{
$ext = strtoupper($path_parts["extension"]);
if(!empty($cc))
{
$filesize = number_format(ceil(filesize($dir."/".$cc)), 0, ",", " ");
$filedate = date("Y-m-d H:i:s", filemtime($dir."/".$cc));
switch($ext)
{
case "MP3":
$col = '<a href="/'.($dir."/".$cc).'"><img src="/icons/16/mp3.gif" width="16" height="16" border="0" ALT="'.$filesize.' Kbyte"></a>';
break;
case "NFO": case "TXT":
$col = '<a href="/'.($dir."/".$cc).'"><img src="/icons/16/info.gif" width="16" height="16" border="0" ALT="'.$filesize.' Kbyte"></a>';
break;
case "AVI": case "MPG": case "MPEG":
$col = '<a href="/'.($dir."/".$cc).'"><img src="/icons/16/video.gif" width="16" height="16" border="0" ALT="'.$filesize.' Kbyte"></a>';
break;
case "BIN": case "ISO": case "NRG":
$col = '<a href="/'.($dir."/".$cc).'"><img src="/icons/16/cdimage.gif" width="16" height="16" border="0" ALT="'.$filesize.' Kbyte"></a>';
break;
case "CUE":
$col = '<a href="/'.($dir."/".$cc).'"><img src="/icons/16/cue.gif" width="16" height="16" border="0" ALT="'.$filesize.' Kbyte"></a>';
break;
case "RAR": case "ZIP": case "ARJ":
$col = '<a href="/'.($dir."/".$cc).'"><img src="/icons/16/pack.gif" width="16" height="16" border="0" ALT="'.$filesize.' Kbyte"></a>';
break;
case "JPG": case "JPEG": case "GIF":
$col = '<a href="/'.($dir."/".$cc).'"><img src="/icons/16/pic.gif" width="16" height="16" border="0" ALT="'.$filesize.' Kbyte"></a>';
break;
default:
if(strlen($ext) == 3 and ($ext[0] == 'R' or $ext[0] == '0') )
$col = '<a href="/'.($dir."/".$cc).'"><img src="/icons/16/pack.gif" width="16" height="16" border="0" ALT="'.$filesize.' Kbyte"></a>';
else
$col = '<a href="/'.($dir."/".$cc).'"><img src="/icons/16/file.gif" width="16" height="16" border="0" ALT="'.$filesize.' Kbyte"></a>';
break;
}
}
else
$col = " ";
}
break;
}
switch($linktype)
{
case "par":
$link = '<a href="/?list='.getParentDir($list."/".$cc).'">'.$cc.'</a>';
$extension = htmlentities("<DIR>");
break;
case "dir":
$link = '<a href="/?list='.(empty($list)?($cc):($list."/".$cc)).'">'.$cc.'</a>';
$extension = htmlentities("<DIR>");
break;
default:
$link = '<a href="/'.($dir."/".$cc).'">'.$cc.'</a>';
$extension = $ext;
break;
}
if($szin == "4B5C8A") $szin = "40517D"; else $szin = "4B5C8A";
echo "<tr bgcolor=$szin>";
echo "<td>$col</td>";
echo "<td>$link</td>";
echo "<td align=right>".$extension."</td>";
echo "<td align=right>$filesize</td>";
echo "<td align=right>$filedate</td>";
echo "<td><a href=\"".($dir."/".$cc)."\"><img src=icons/16/down.gif border=0></img></a></td>";
echo "</tr>";
unset($link, $linktype, $col, $extension, $filedate, $ext);
}
?>
Re: dir list név szerint...
http://weblabor.hu/forumok/temak/1941
dir objektum
a program a dir objektum read() metodusat hasznalja a konyvtar tartalmanak beolvasasahoz, ami ezt a konyvtarbejegyzesek letrehozasanak datuma alapjan vegzi, ezert ez a mukodes. a problemat legeccerubben ugytudod athidalni, ha a $files tombon lefuttatod pl a natsort() fuggvenyt, amely abc sorrendbe rendezi a fajlneveket. ezt a $dirs-en is megteheted, de ha a kettot egyutt szeretned rendezni, akkor pedig az osszefuzesuk utan, a $dirlist valtozon futtasd le.
--
slink
Ohh köszi a gyors választ!!!
Pont ezért fordultam hozzátok...
Esetleg valahogy konkrétabban nem tudnád/tudnátok leírni hogy mit is kéne átírnom a forrásbol?
Elöre is köcce
Davee