ugrás a tartalomhoz

dir list név szerint...

Anonymous · 2004. Júl. 26. (H), 17.15
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:

<?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\">&nbsp;</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\">&nbsp;</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 = "&nbsp;";
    }
   
  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);

}

?>
 
1

Re: dir list név szerint...

T.G · 2004. Júl. 26. (H), 18.14
Beolvasod, sorbateszed, kiírod a helyes sorrendben...
http://weblabor.hu/forumok/temak/1941
2

dir objektum

Török Gábor · 2004. Júl. 26. (H), 18.22
helo,

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
3

Ohh köszi a gyors választ!!!

Davee · 2004. Júl. 26. (H), 21.32
Csak egy gáz van... rohadtul nem értek a PHP-hez :)
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