AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Dir-Listing Problem

Ein Thema von fwsp · begonnen am 14. Feb 2006 · letzter Beitrag vom 17. Feb 2006
 
fwsp
(Gast)

n/a Beiträge
 
#1

[PHP] Dir-Listing Problem

  Alt 14. Feb 2006, 17:48
hallo
ich hab die listing-skripte von luckie bekommen. und bin grad dabei die anzupassen, allerdings krieg ich es nicht hin, dass unterverzeichnisse angezeigt werden. ich bin nicht so fit in php, vielleicht kann mir jemand helfen

das problem könnt ihr euch angucken wenn ihr auf fwsp.net geht, und dann auf verzeichnisse, und es ist definitiv ein unterverzeichnis da.


die datei die aufgerufen wird, mit dem verzeichnis als parameter
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <?php
    echo "<title>fwsp.net/$folder</title>";
  ?>
  <link rel="stylesheet" type="text/css" href="css/format.css">
  <link rel="stylesheet" type="text/css" href="css/dir.css">

</head>
<body>
  <div>
  <?php
    include $_SERVER['DOCUMENT_ROOT'].'/php/dirhelpers.php';
    echo '<h2>Inhalt von '.$folder.'</h2>';
  ?>
 



    <?php
      if (!file_exists($folder))
      {
        echo "No such file or directory!";
        echo "<hr>\n";
        echo "<table>\n";
        echo "<tr>\n";
        echo "<td></td>";
        echo "<td>'$cr'</td>";
        echo "</tr>\n";
        echo "</table>\n";
        echo "</div>\n";
        exit;
      }
      echo "<hr>\n";
      echo "<div class='right'>Letzte Veränderung: ".date("Y-m-d H:i", filemtime($folder.newestfile($folder)))."</div>";
    ?>
  </p>

  <table>
  <colgroup>
    <col width="200" class="left">
    <col width="100" class="right">
    <col width="360" class="left">
  </colgroup>
  <?php
    $s = explode('/',$folder);
    array_pop($s);
    array_pop($s);

    $prefolder = implode('/', $s);
    if ($prefolder == '')
    {
      $prefolder = '';
    }
    else
    {
      $prefolder = 'dirindex.php?folder='.$prefolder;
    }

    echo '<tr>';
    echo '<th class="left">[url="dirindex.php?folder='.$folder.$dir.'&SortOrder=time"]Letzte Veränderung[/url]</th>
          <th class="left">[url="dirindex.php?folder='.$folder.$dir.'&SortOrder=size"]Größe[/url]</th>
          <th class="left">[url="dirindex.php?folder='.$folder.$dir.'&SortOrder=name"]Name[/url]</th>';
    echo '</tr>';

    echo '<tr>';
    echo '<td></td>
          <td>&lt;PDir&gt;</td>
          <td>[img]image/dir_default.png[/img]
          [url="'.$prefolder.'/"][.........][/url]</td>';
    echo '</tr>';

    /*if (!strpos($folder, '.'))*/

    $dirs = ListDirs($folder);
    foreach($dirs as $dir)
    {
      echo '<tr>';
      echo '<td>'.date("Y-m-d H:i", filemtime($folder.$dir)).'</td>
            <td>&lt;DIR&gt;</td>
            <td>[img]image/dir_folder.png[/img]
            [url="dirindex.php?folder='.$folder.$dir.'/"]['.$dir.'][/url]</td>';
      echo '</tr>';
    }


    if ($SortOrder == '')
    {
      $SortOrder = 'name';
    }

    $files = ListFiles($folder, $SortOrder);
    foreach($files as $file)
    {
      $title = GetTitleFromHTML($folder.$file);
      if ($title == '')
      {
        $title = $file;
      }
      echo '<tr>';
      echo '<td>'.date("Y-m-d H:i", filemtime($folder.$file)).'</td>
            <td>'.format_filesize(filesize($folder.$file)).'</td>
            <td>[img]'.PickImage($folder.$file).'[/img]
            [url="/'.$folder.$file.'"]'.$title.'[/url]</td>';
      echo '</tr>';
    }
  ?>

  </table>
  <hr>
  <table>
    <tr>
    <?php
      echo '<td">Ordner: '.count($dirs).' Dateien: '.count($files).'  ~ '.format_filesize(directory_size($folder)).'</td></tr>';
      echo '<tr><td class="small">PHP-Listing &copy; Michael Puff</td>';
    ?>
    </tr>
  </table>
  </div>

</body>
</html>
und die datei in der die funktionen drin sind
Code:
<?php
/*
  Copyright (c) 2005: Michael Puff
  Url: [url]http://www.luckie-online.de[/url]
  Mail: [email]mpuff@luckie-online.de[/email]

  Version: 2.0 - 2005-11-06
*/

//
// Returns the lates file from a given directory
//
function newestfile($folder,$number=0)//$folder endet auf \ oder /
{
  $Docs=Array();
  $handle=opendir($folder);
  $Doccount=0;
  while (false !== ($file = readdir ($handle)))
  {
    if ($file[0] != "." && $file != 'index.php')
    {
      $Docs[$Doccount]=$file;
      $Time[$Doccount]=filemtime($folder.$Docs[$Doccount]);
      $Doccount++;
    }
  }
  closedir($handle);
  array_multisort($Time,SORT_DESC,$Docs);
  return $Docs[$number];
}

//
// Returns the title of a given HTML-file
//
function GetTitleFromHTML($htmlfile)
{
  $content = file_get_contents($htmlfile);
  $start = strpos(strtolower($content),"<title>");
  $end = strpos(strtolower($content),"</title>");
  if (($start !== false) and ($end !== false))
   return substr($content,$start+7,$end-$start-7);
  else
   return "";
}

//
// Returns the size in bytes of a given directory
//
function directory_size($nomrep){
   $dossier = @opendir($nomrep);
   $file_size_up = 0;
   while ($Fichier = @readdir($dossier)){
       if ($Fichier != "." && $Fichier != ".."){
           if ($Fichier){
               $file_size_up += filesize($nomrep."/".$Fichier);
           }
       }
   }
   @closedir($dossier);
   return $file_size_up;
}

//
// Formats the filesize in a more readable format
//
function format_filesize( $filesize )
{
   $filesize = (int)$filesize;
   $units = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
   $tot_units = (count($units) - 1);

   $pass = 0; // set zero, for Bytes
   while( $filesize >= 1024 && $pass < $tot_units )
   {
       $filesize /= 1024;
       $pass++;
   }

   return round($filesize, 2) .''. $units[$pass];
}

//
// Returns the sub-directories of a given directory
//
function ListDirs($dir)
{
  $dirs=Array();
  $handle=opendir($dir);
  $count=0;

  while(false !== ($s = readdir($handle)))
  {
    if (is_dir($s) && ($s[0] != '.'))
    {
      $dirs[$count] = $s;
      $count++;
    }
  }
  closedir($handle);
  array_multisort($dirs, SORT_ASC, $dirs);
  return $dirs;
}

//
//  Returns the files in a given directory
//  Valid values for $SortOrder: name, time, size
//
function ListFiles($dir, $SortOrder)
{
  $files=Array();
  $handle=opendir($dir);
  $count=0;

  while(false !== ($file = readdir($handle)))
  {
    if (is_file($dir.'/'.$file) && ($file != 'index.php'))
    {
      $files[$count] = $file;
      $Time[$count]=filemtime($dir.'/'.$file);
      $Size[$count]=filesize($dir.'/'.$file);
      $count++;
    }
  }
  closedir($handle);
  if ($SortOrder == 'name')
  {
    array_multisort($files, SORT_ASC, $files);
  }
  elseif ($SortOrder == 'time')
  {
    array_multisort($Time, SORT_DESC, $files);
  }
  elseif ($SortOrder == 'size')
  {
    array_multisort($Size, SORT_ASC, $files);
  }

  return $files;
}


function PickImage($Filename)
{
  $s = pathinfo($Filename);
  $ext = $s["extension"];
  switch ($ext)
  {

    case "pdf": return "image/dir_pdf.png"; break;
    case "zip": return "image/dir_zip.png"; break;
    case "exe": return "image/dir_exe.png"; break;
    default:   return "image/dir_default.png"; break;
  }
    }
?>
mfg
fwsp

[edit=alcaeus]delphi- durch code-Tags ersetzt. Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz