Files in Verzeichnissen auslesen ?

Alles, was PHP betrifft, kann hier besprochen werden.

Files in Verzeichnissen auslesen ?

Postby PAC » 15. June 2004 22:08

Hi Leutz

Ich hab hier ein kleines php script,womit ich mir immer den Inhalt von Verzeichnissen aus lese.
Möchte jetzt aber auch noch die Filegröße hinter jedem Filenamen angezeigt bekommen,bekomme es aber irgentwie nicht hin.

Das ganze läuft bei mir Lokal unter Xampp.

Hat jemand hier vielleicht einen Tipp dazu oder kann es sofort rein editieren??


<html>
<head>
</head>
<body>
<?php
$senden = '1';
if(@$_GET['senden'] != '') $senden = '2';
if($senden != '1') {
$path = $_GET['path'];
$verz=@opendir($path);
while ($file = @readdir ($verz)) {
if($file != '.' && $file != '..' && $file != '.htaccess')
{
echo $file . '<br>';
}
}
@closedir($verz);
die('EOD' . '</body></html>');
}
?>
<form action="test2.php" method="get" target="">
<input type="Text" name="path" value="Pfad" size="" maxlength=""><br>
<input type="Submit" name="senden" value="Auflisten!">
</form>
</body>
</html>
PAC
 
Posts: 3
Joined: 15. June 2004 18:23

filesize nutzern

Postby TConnect » 15. June 2004 23:26

Hi,

also am besten, Du verwendest

http://de3.php.net/manual/de/function.filesize.php

zur Darstellung der Dateigröße. Gleich das erste Beispielscript auf der o.g. Page sollte die Lösung für Deine Frage haben.

Gruß TConnect
TConnect
 
Posts: 100
Joined: 31. March 2004 22:26

Postby PAC » 16. June 2004 05:48

Sorry, aber das funktioniert genau so wenig, wie meine Lösung.

Wenn ich das

function file_size($file)
{
$size = filesize($file);
for($si = 0; $size >= 1024; $size /= 1024, $si++);
return round($size, 1)." ".substr(' kMGT', $si, 1)."B";

mit einbaue, funktioniert zwar das Script,aber es werden die größen nicht angezeigt.
Im Gegenteil,am Ende der Ausgabe stehen dann Sachen, (zb siehe unten) die gar nicht in dem Verzeichnis vorhanden sind.

AlbumArtSmall.jpg
AlbumArt_{5C05B0F4-4486-4BFF-8F52-D7A28B39DEFD}_Small.jpg
Folder.jpg
AlbumArt_{5C05B0F4-4486-4BFF-8F52-D7A28B39DEFD}_Large.jpg
desktop.ini
AlbumArt_{1D284E27-700D-45E4-B5E4-86ED9221E79E}_Small.jpg
AlbumArt_{1D284E27-700D-45E4-B5E4-86ED9221E79E}_Large.jpg
AlbumArt_{A6C38A4E-C29F-4B90-B95E-648BE3109C95}_Small.jpg
AlbumArt_{A6C38A4E-C29F-4B90-B95E-648BE3109C95}_Large.jpg
AlbumArt_{C3F4DFE2-0378-4945-AF43-63EFA338507E}_Small.jpg
AlbumArt_{C3F4DFE2-0378-4945-AF43-63EFA338507E}_Large.jpg
PAC
 
Posts: 3
Joined: 15. June 2004 18:23

Postby Wiedmann » 16. June 2004 10:21

Vielleicht hilft ja folgendes:
Code: Select all
<html>
<head></head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
   <table>
      <tr>
         <td>Pfad eingeben:</td>
         <td><input type="Text" name="verzeichnis" value="<?php echo getcwd(); ?>"></td>
      </tr>
      <tr>
         <td></td>
         <td><input type="submit" name="senden" value="Auflisten!"></td>
      </tr>
   </table>
</form>
<hr />
<?php
   $senden = '';
   $verzeichnis = '';
   if ((!empty($_POST['senden'])) && (!empty($_POST['verzeichnis']))) {
      $verzeichnis = realpath($_POST['verzeichnis']);
      if (is_dir($verzeichnis) && ($verzeichnis_handle = opendir($verzeichnis))) {
         echo '<table>';
         echo '<tr><td>Name</td><td>Größe</td></tr>';
         while (false !== ($datei = readdir($verzeichnis_handle))) {
            if (('.' != $datei) && ('..' != $datei)) {
               $groesse = filesize($verzeichnis.'/'.$datei);

               echo '<tr><td>'.$datei.'</td><td>'.$groesse.' Bytes</td></tr>';
            }
         }
         echo '</table>';
         closedir($verzeichnis_handle);
      } else {
         echo 'Ungültiges Verzeichnis angegeben!';
      }
   }
?>
</body>
</html>
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby PAC » 17. June 2004 06:25

Ähm...hier muss was schief gelaufen sein,hab gestern meinen Text hier editiert und geschrieben das ich das Prob gelöst hab.
Die Änderung wurd auch angezeigt,darum wundere ich mich jetzt,das schon wieder der alte Post hier drinne steht.

Trotzdem vielen Dank für deine Mühe Wiedman. Dein Script läuft auch prima und gefällt mir auch sehr gut.


So is das Script jetzt:

<html>
<head>
</head>
<body>
<?php
$senden = '1';
if(@$_GET['senden'] != '') $senden = '2';
if($senden != '1') {
$path = $_GET['path'];
$verz=@opendir($path);
while ($file = @readdir ($verz)) {
if($file != '.' && $file != '..' && $file != '.htaccess')
{

$size = filesize($path . '/' . $file);

echo $file . ' &nbsp; <b>Größe</b>:' . $size . ' Bytes <br>';
}
}
@closedir($verz);
die('EOD' . '</body></html>');
}
?>
<form action="test3.php" method="get" target="">
<input type="Text" name="path" value="Pfad" size="" maxlength=""><br>
<input type="Submit" name="senden" value="Auflisten!">
</form>
</body>
</html>
PAC
 
Posts: 3
Joined: 15. June 2004 18:23


Return to PHP

Who is online

Users browsing this forum: No registered users and 21 guests