Raffi: Alle Dateien im Verzeichnis und Unterverzeichnissen auflisten

Hallo Leute

Ich habe folgenden Script gebastelt:

<?

$dp = opendir (".");

while ($file = readdir ($dp))

{

echo $file."<br>";

}

closedir($dp);

?>

Der listet mir jetzt alle Dateien und Verzeichnisse auf. Ich möchte aber eine Liste mit allen Dateien (auch in den Unterverzeichnissen. Ausgabe müsste so aussehen:

index.php
bild.jpg
images/bild1.jpg
images/bild2.jpg
admin/test.htm

usw....

wie kann ich diese Funktion mit meinem Script erreichen?

Danke und Gruss
Raffi

  1. Hallo

    wie kann ich diese Funktion mit meinem Script erreichen?

    Indem du als erstes eine Funktion baust, die ein Verzeichnis ausliest. Als Parameter müsstest du ihr das jeweilige Verzeichnis übergeben. Sie muss in etwa wie dein Script oben aussehen, jedoch muss vor der Ausgabe überprüft werden, ob es sich dabei um eine Datei (=sofort ausgeben (mit Pfad)) oder um ein Verzeichnis handelt (is_fle()/is_dir()). Ist letzteres der Fall, so rufst du die Funktion einfach mit dem neuen Verzeichnis auf.
    Damit das ganze anfägt zu laufen, rufst du die Funktion, wie du dir wahrscheinlich schon gedacht hast, mit "." als Parameter auf.

    Wahrum erzähle ich das eigentlich? Und wieso hast du nicht Google oder die PHP-FAQs begutachtet?
    25.6. Wie kann ich den Inhalt eines Verzeichnisses samt dem Inhalt aller Unterverzeichnisse ausgeben?
    http://www.dclp-faq.de/q/q-code-verzeichnis.html

    Grüße

    David

    --
    "Nobody will ever need more than 640k RAM!"
    1981 Bill Gates
    1. Das Beispiel funktioniert nicht wirklich...

      Es gibt mir lediglich die Ordnernamen und die Dateien aus, jedoch nicht die Dateien in den Unterverzeichnissen.

      Gruss
      Raffi

      1. Hi

        Das Beispiel funktioniert nicht wirklich...

        Es gibt mir lediglich die Ordnernamen und die Dateien aus, jedoch nicht die Dateien in den Unterverzeichnissen.

        Das stimmt doch, hat er so gesagt.
        Kannst du mir sagen, wie  ich das nur für Bilder anwenden kann dein Script? Könnte ich gut gebrauchen! ;)

        MfG
        S.Fäßler

        1. Hallo

          Kannst du mir sagen, wie  ich das nur für Bilder anwenden kann dein Script?

          Was hindert dich daran, vor der Ausgabe die Dateierweiterung zu prüfen und nur eine Ausgabe bei "gif", "jpg" usw. zu veranlassen?

          Grüße

          David

          --
          "Nobody will ever need more than 640k RAM!"
          1981 Bill Gates
      2. habe d'ehre

        Das Beispiel funktioniert nicht wirklich...

        Es gibt mir lediglich die Ordnernamen und die Dateien aus, jedoch nicht die Dateien in den Unterverzeichnissen.

        Haehh? http://www.dclp-faq.de/q/q-code-verzeichnis.html zeigt alles in den UV exakt an

        --
        carpe diem
        Wilhelm
  2. Hi,

    Ich möchte aber eine Liste mit allen Dateien (auch in den Unterverzeichnissen.

    Das ist gar nicht mal so einfach. Das Zauberwort heißt "Rekursion", was für eine sich selbst aufrufende (bis zur Erfüllung einer Bedingung) Funktion steht. Die Verschachtelungstiefe ist unbekannt, also mußt Du jedes Unterverzeichnis quasi "durchbrowsen" und in einem Array ablegen.

    Solche Funktionen, bzw. Methoden gibt's viele bereits fertig, also warum das Rad neu erfinden. Hier ein sauber programmiertes Beispiel; damit lassen sich z.B. Verzeichnisse nach bestimmten Dateitypen durchsuchen.

    http://pear.php.net/package-info.php?pacid=27

    Viel Erfolg damit!

    Gruß,
    Danny