Verzeichnisinhalt lesen und speichern

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

  • Verzeichnisinhalt lesen und speichern

    Hallo,

    Die dateien eines verzeichnisses möchte ich auslesen und dann
    in eine Datei abspeichern.
    Bei dem nachfolgenden Versuch werden jedoch nicht alle Dateien des
    verzeichnisses in die Datei geschrieben, sondern nur eine. Liegt
    wahrscheinlich daran das es eine Schleife ist?

    Code:
    if(file_exists($dir)) {
    $read = opendir($dir);
    $datei=0;
    while($lesen = readdir($read))
    {
    if(!is_dir($lesen))
    {
    $datei++;
    $site=" <a href=\"$path$lesen.htm\">$lesen</a><br>";
    }
    }
    } 
    
    if ($fp=fopen($path,$modus)) {
    fwrite($fp,"<? ");
    fwrite($fp," \$site=\"" . $site . "\";");
    fwrite($fp," ?>");
    fclose($fp);
    }}
    Heiner

  • #2
    Hier, dies liest ein Verzeichnis aus und speichert die Dateinamen in einer Datei.
    PHP-Code:
    <?
        $handle = opendir('.');
        
        $fp = fopen("list.txt","w");
        
        while($files = readdir($handle))
        {
            if($files != "." && $files != ".." && is_file($files))
            {
                fputs($fp,$files."\n");
            }
        }
        
        fclose($fp);
    ?>
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      Das problem bei deinem Skript war, dass die letzte Datei in der Variable steht und du nur diese dann in die Textdatei geschrieben hast. Die Variable wurde ja während der Schleife andauernd neu überschrieben.
      PHP-Code:
      <?
      $dir = ".";

      $fp=fopen("test.txt","w");

      if($fp != true) die("Datei konnte nicht geöffnet werden...");
      fwrite($fp,"<?\n");
      if(file_exists($dir)) 
      {
          $read = opendir($dir);
          $datei=0;
          while($lesen = readdir($read))
          {
              echo $lesen."<br>";
              if(is_file($lesen))
              {
                  $site=" <a href=\"$path$lesen.htm\">$lesen</a><br>";
                  fwrite($fp," \$site=\"" . $site . "\";\n");
              }
          }

      fwrite($fp," ?>");
      fclose($fp);
      ?>
      mfg
      Günni


      Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
      Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
      Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
      City-Tiger - Online durch die Straßen tigern...

      Kommentar


      • #4
        Danke,

        in die Datei, in der die ausgegebene Liste hineingeschrieben werden
        soll, stehen aber noch mehr Inhalte.

        Die Ausgabe des Verzeichnissinhaltes:

        <a href=\"index1.htm\">index1</a><br>
        <a href=\"index2.htm\">index2</a><br>
        <a href=\"index3.htm\">index3</a><br>

        muss eine Variable sein !, die hier z.B. Linkvariable heisst:

        Code:
        if ($fp=fopen($path,$modus)) {
        fwrite($fp,"<? ");
        fwrite($fp," \$Linkvariable=\"" . $Linkvariable . "\";");
        fwrite($fp," \$variable1=\"" . $variable1 . "\";");
        fwrite($fp," \$variable1=\"" . $variable1 . "\";");
        fwrite($fp," ?>");
        fclose($fp);
        Ergebnis der Abfrage müsste sein:

        $Linkvariable ="
        <a href=\"index1.htm\">index1</a><br>
        <a href=\"index2.htm\">index2</a><br>
        <a href=\"index3.htm\">index3</a><br>
        ";

        Kommentar


        • #5
          Selbst versuchen, dann bei problemen wieder melden
          mfg
          Günni


          Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
          Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
          Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
          City-Tiger - Online durch die Straßen tigern...

          Kommentar


          • #6
            Habe es so versucht, kommt keine Ausgabe:
            PHP-Code:
            $dir = $path."menu";
            if(file_exists($dir))
            {
                $read = opendir($dir);
                $datei=0;
                while($lesen = readdir($read))
                {
                    if(is_file($lesen))
                    {
                        $sitemenu=" <a href=\"$path$lesen.htm\">$lesen</a><br>";

                        if ($fp=fopen($passpath,$modus)) {
                        fwrite($fp,"<? ");
                        fwrite($fp," \$sitemenu=\"" . $sitemenu . "\";\n");
                        fwrite($fp," ?>");
                        fclose($fp);
                        }

                    }
                }
            }

            Kommentar


            • #7
              probier mal
              PHP-Code:
              fwrite($fp,'$sitemenu="'.$sitemenu.'";'."\n"); 
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                geht auch nicht.

                Kommentar


                • #9
                  Original geschrieben von Heiner
                  geht auch nicht.
                  du hast vergessen zu schreiben was in der datei drin steht, denn es sollte auf jeden fall irgendetwas drin stehen
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Hallo,

                    es stand nichts in der Datei, weil in dem Verzeichnis keine files
                    stehen, sondern nur Namen von Dateien ohne Endung die
                    ich benötige.
                    Habe dann 'if(is_file($lesen))' ersetzt durch ' if(!is_dir($lesen))'
                    dann steht jedoch in der Datei wieder nur ein Link, das gleiche
                    Problem wie eingangs geschildert.

                    Es wird also wieder nur die letzte Variable der Schleife übergeben.
                    Zuletzt geändert von Heiner; 19.04.2003, 15:35.

                    Kommentar


                    • #11
                      aber ist dieser eine eintrag so wie du ihn haben willst vom format her?

                      in welchem modus öffnets du die datei?
                      mit "w" öffnest du sie zum schreiben und das, was bis jetzt drinstand wird gelöscht

                      wenn du was anhängen willst, solltest du "a" nehmen
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Hallo,

                        der Eintrag ist so wie ich ihn haben will, es ist jedoch eben
                        nur 1 Eintrag (der letzte) des Verzeichnisses, die anderen
                        Einträge fehlen.

                        Geschrieben wird mit w+ , es wird jedesmal alles ersetzt.

                        Kommentar


                        • #13
                          http://www.php.net/manual/de/function.fopen.php

                          und überlegen, was da steht und was ich geschrieben hab
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Original geschrieben von mrhappiness
                            http://www.php.net/manual/de/function.fopen.php

                            und überlegen, was da steht und was ich geschrieben hab
                            Hallo,

                            es geht nicht um fopen, das Script läuft schon lange und sammelt Variablen
                            ein, die sich jedesmal ändern, deswegen wird die Datei jedesmal neu
                            geschrieben (siehe 1.Post).

                            In diesem Zusatz jedoch besteht eine Variable aus mehreren Einträgen,
                            mit einer Schleife geht das mit dem Abspeichern wohl nicht, eben
                            nur eine optische Ausgabe, die zum Testen auch funktioniert hat.

                            Da muss man wohl doch anders herangehen, ich dachte hier eine
                            Anregung zu bekommen.
                            Sollte ich zu einem Ergebnis kommen, werde ich es mitteilen.

                            Danke
                            Heiner

                            Kommentar


                            • #15
                              PHP-Code:
                              <?
                              $dir = ".";

                              $fp=fopen("test.txt","w");

                              if($fp != true) die("Datei konnte nicht geöffnet werden...");
                              fwrite($fp,"<?\n");
                              if(file_exists($dir)) 
                              {
                                  $read = opendir($dir);
                                  $dateicounter = 0;
                                  while($lesen = readdir($read))
                                  {
                                      echo $lesen."<br>";
                                      if(is_file($lesen))
                                      {
                                          fputs($fp,"\t\$seite[$dateicounter] = \"<a href=\\\"$lesen.htm\\\">$lesen</a><br>\";\n");
                                          $dateicounter++;
                                      }
                                      
                                  }

                              fwrite($fp,"?>");
                              fclose($fp);
                              ?>
                              mfg
                              Günni


                              Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                              Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                              Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                              City-Tiger - Online durch die Straßen tigern...

                              Kommentar

                              Lädt...
                              X