WinFuture-Forum.de: Ordnerstruktur Wird Nicht Richtig Angezeigt - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Ordnerstruktur Wird Nicht Richtig Angezeigt


#1 Mitglied ist offline   h-a-n-n-e-s 

  • Gruppe: aktive Mitglieder
  • Beiträge: 823
  • Beigetreten: 11. August 06
  • Reputation: 1

geschrieben 07. Februar 2008 - 10:46

Morgen
Mich plagt mal wieder ein Problem bei einem PHP-Skript.
Also, ich will auf meinem Server alle Ordner plus deren Unterordner ausgeben lassen, dazu hab ich über Google dieses Skript gefunden:
function opd($ordner)
{
echo "Lese Verzeichnis $ordner...
";
$handle=opendir($ordner);



while(($file=readdir($handle))!==false)
{

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

$fullpath=$ordner."/".$file;
if(!is_dir($fullpath))
{
echo "Datei: $fullpath
";
//do_rename_stuff($fullpath);
}
else
{
echo "Ordner: $fullpath
";
opd($fullpath); // Rekursion
echo "---
";
}
}
}
closedir($handle);
}

Die Ordner werden dann so ausgegeben:
Ordner: .
Datei: index.php
Datei: test.html
Ordner: ./bilder
Datei: ./bilder/1.jpg
Datei: ./bilder/2.jpg

So wenn ich jetzt aber neue Dateien in das Index Verzeichnis hochlade, dann zeigt das Skript die Datei ganz am Ende an also so:
Ordner: .
Datei: ./index.php
Datei: ./test.html
Ordner: ./bilder
Datei: ./bilder/1.jpg
Datei: ./bilder/2.jpg
Datei: ./1.html->Das sollte aber oben stehen und nicht bei den Unterverzeichnissen.

Weiß jemand zufällig wo der Fehler liegt?
Gruß Hannes
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 07. Februar 2008 - 17:21

Hi,

das Skript arbeitet doch fehlerfrei.

Es läuft so ab:

opd wird mit Suche in ./ gestartet (Rekursionstiefe 0) und findet:
opd(0): Datei: index.php
opd(0): Datei: test.html
opd(0): Ordner: ./bilder

Durch den Ordner wird Rekursion in Gang gesetzt: opd(1)
opd(1): Datei: ./bilder/1.jpg
opd(1): Datei: ./bilder/2.jpg

Alle Dateien in ./bilder gefunden -> opd(1) erledigt, Rücksprung zu opd(0)
opd(0): Datei: ./1.html
...


string readdir ( resource $dir_handle ) nimmt dabei einfach die Reihenfolge, wie die Dateien im Filesystem angeordnet sind (mehr oder weniger Zufall). Willst du nun z.B. nach dem Alphabet sortieren, benutze einfach die Funktion array scandir ( string $directory [, int $sorting_order [, resource $context ]] ).
Willst du Ordner und Dateien extra betrachten, dann kannst du z.B. bevor du das Ergebnis ausgibst, die Dateienamen in ein Array speichern und dieses anschließend entsprechend sortieren.

Gruß,
Stefan
0

#3 Mitglied ist offline   h-a-n-n-e-s 

  • Gruppe: aktive Mitglieder
  • Beiträge: 823
  • Beigetreten: 11. August 06
  • Reputation: 1

geschrieben 07. Februar 2008 - 17:54

Hallo Diewie,
danke für den super Link damit klappt es:-)
Aber noch eine andere Frage, was ich gerne haben würde wenn es leicht realisieren wäre.
Könnte man es wie beim alten Skript so machen das oben drüber die Ordnernamen angezeigt werden?
Also:
Ordner: ./
Datei: ./1.php
Ordner ./test
Datei: ./test/2.php

Gruß Hannes

Dieser Beitrag wurde von h-a-n-n-e-s bearbeitet: 07. Februar 2008 - 18:38

Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0