Zwischen Datei und Verzeichnis unterscheiden ?

toboli

Erfahrenes Mitglied
Hallo,

ich lese mittels folgendem Script ein Verzeichnis aus. Momentan werden hier
nur Datein angezeigt. Ich möchte aber auch Verzeichnise angezeigt bekommen.
Kann mir jemand sagen, wie ich zwischen Verzeichnisen und Dateinen unterscheiden
kann ?

PHP:
$dir = opendir($path);
while($file = readdir($dir)) {

   if (($file != "..") and ($file != ".")) {

   echo $file;

   }

}

So werden allerdings nur Dateien angezeigt.

Ich habe es auch schon mit folgener Änderung porbiert, was aber auch
nicht geht.

PHP:
$dir = opendir($path);
while($file = readdir($dir)) {

   if (is_dir($file)) {

   echo "<img src='dir.gif'> ".$file;

   } else {
   
   echo "<img src='file.gif'> ".$file;
   
  }

}

Wäre Klasse wenn mir jemand helfen könnten.
 
Eigentlich dienen die Funktionen is_dir() und is_file() zur Identifikation eines Verzeichnises beziehungsweise einer Datei. Dass dies nun nicht funktionieren solle, kann ich mir nicht erklären.
 
Ich mich leider auch nicht...

Wenn ich z.B. ein Bild mit Namen "bild1.jpg" und ein Verzeichnis mit Namen "Neue" habe,
wird eine Liste wie folgt ausgegeben:

.
..
bild1.jpg
Neue

Das ist soweit ja auch in Ordnung, nur werden die wie im obigen Script eingebundene Icon
für ein Verzeichnis nur bei "." und ".." angezeigt. Der Ordner erhält das zugewiesene Icon für die Bilddatei.
 
[phpf]readdir[/phpf] gibt nur Datei-/Verzeichnisnamen zurück. Um mit diesen Dateien arbeiten zu können, benötigt man allerdings eine komplette Pfadangabe. Wenn du bei [phpf]is_dir[/phpf] also mit $path.'/'.$file anstatt nur $file arbeitest, sollte das Skript seinen Dienst erfüllen.
 
Zurück