directory listening

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • directory listening

    hallo. Ich habe folgendes Problem. Ich möchte eine Art directory Listening script machen. Ich bin inzwischen soweit, dass ich mir die Dateien im aktuellen Ordner anzeigt, wenn es ein Ordner ist erkennt er das. Übergebe ich in der URL den Namen des Ordners, so öffnet er diesen und gibt wieder die Dateien aus.
    Mein Code sieht im moment so aus:

    PHP-Code:
    $root $GLOBALS[HTTP_REFERER];

    $dir dir("./");
    while(
    $datei $dir->read()) 
    {
        if(
    is_dir($datei))
        {
            if(
    $datei != "." and $datei != "..")
            {
                if(
    $_GET['subdir'] == $datei)
                {
                    ${
    $_GET['subdir']} = dir("./".$_GET['subdir']);
                    while(${
    "f".$_GET['subdir']} = ${$_GET['subdir']}->read()) 
                    {
                        ${
    "f".$_GET['subdir']}
                    }
                }
            }
        }
        else
        {
            echo 
    "<br>File-->".$datei;
        }
    }
    $dir->close(); 
    Ich muss jetzt aber für jede Ebene die auftauchen könnte, eine neue while schleife und so machen.
    Wie kann ich das automatisieren? Also dass automatisch der nächste Ordner mit Inhalt angezeigt wird, klickt man auf den folgenden UNterordner, wird auch der Inhalt dieses angezeigt usw...
    Kann mir wer helfen? Mir fällt im Moment nicht ein wie ich es besser erklären kann.
    MfG Oli

  • #2
    Rekursion ist das Zauberwort,
    such mal hier, ist schon oft aufgetaucht
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      hm.. ich habe mal ne Weile rumgestöbert, und bin auf einige Dinge gestoßen. Laut www.develnet.org/ "Das 'Nested Sets' Modell - Bäume mit SQL" ist eine Rekursion nicht angebracht, wegen der Performance. Die Threads haben sich außerdem meistens auf sql bezogen, ich will es aber ohne machen.
      Im Grunde genommen bin ich jetzt so schlau wie vorher.
      Irgendwie müsste ich ein Beispiel sehen.
      kannst du mir mal erklären, wie man was rekursiv durchlaufen lassen muss und ob das vielleicht auch ohne eine Rekursion geht?

      Kommentar


      • #4
        also wenn ich hier im Forum nach "rekursion" suche, bringt mich der 6 Link dorthin

        http://www.php-resource.de/forum/sho...ight=rekursion
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          Original geschrieben von OliOli
          hm.. ich habe mal ne Weile rumgestöbert, und bin auf einige Dinge gestoßen. Laut www.develnet.org/ "Das 'Nested Sets' Modell - Bäume mit SQL" ist eine Rekursion nicht angebracht, wegen der Performance.
          du benutzt doch überhaupt kein SQL - also warum beschäftigst du dich mit aussagen, die sich auf rekursion in verbindung mit datenbankabfragen beziehen?

          klar gilt die aussage, "man sollte nicht versuchen, eine maus mit einem kaninchen zu füttern" - aber auch nur in diesem zusammenhang. daraus zu schliessen, dass ein kaninchen für einen fuchs kein willkommenes fressen wäre, ist doch wohl unlogisch ...


          packe also deinen ablauf, der dir die dateien in einem order ausgibt, in eine funktion, der der ordnername als parameter übergeben wird.
          wenn diese funktion bei auflisten der dateien auf einen weiteren unterordner stösst, lasse sie sich selbst wieder aufrufen, nun mit eben diesem unterordner als parameter.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            ja, danke ich hab im dclp faq ein perfektes beispiel gefunden.
            Allerdings kam im code ein printf() vor, auch wenn es nicht wichtig ist, kann mir vieleicht jemand erklären, wie das funktioniert? bei php.net hab ichs nicht so ganz verstanden. (sprintf())

            Kommentar

            Lädt...
            X