Verzeichniss auslesen und dateinamen in eine Datei schreiben ?!

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

  • Verzeichniss auslesen und dateinamen in eine Datei schreiben ?!

    Hallo,

    ich möchte ein Verzeichniss auslesen in dem Bilder und videos liegen.
    Die Dateien sollen gezählt werden und in einer html seite untereinander angezeigt werden.

    dann sollte die ausgabe aber nur ca. 500 treffer ausgeben. und das ist mein problem !

    für den rest habe ich schon folgenden code hier.
    PHP-Code:
    <?php
    $dir 
    "files/";
    $handle opendir($dir);
    $files = array();
    while(
    $file readdir($handle)) {
    if((
    $file != "..") AND ($file != ".")) $files[] = $file;
    }
    closedir($handle);
    $n = (count(files)==1)?"":"n";
    echo 
    count($files);
    foreach(
    $files as $name) echo "<a href=\"".$dir.$name."\">".$name."</a><br>\r\n";
    ?>
    dieser code gibt also den gesamten inhalt des verzeichnisses aus und verlinkt ihn mit dem jeweiligen inhalt.

    wie aber sag ich jetzt das bitte nur 500 treffer ausgegeben werden sollen und die immer anders also gemischt.

    könnte mir da vielleicht einer helfen ??
    Free File hosting by Bilder-Hoster.de

  • #2
    Dateinamen in Array speichern
    500 zufällige Elemente des Arrays ausgeben

    Kommentar


    • #3
      Re: Verzeichniss auslesen und dateinamen in eine Datei schreiben ?!

      Original geschrieben von Kaptain5000
      wie aber sag ich jetzt das bitte nur 500 treffer ausgegeben werden sollen und die immer anders also gemischt.
      Du hast bereits alles im Array $files vorliegen - also lasse dieses zufällig durchmischen (Funktion dazu findest du im Manual), und gebe dann vom Durchgemischten die ersten 500 Einträge aus (bspw. for-Schleife).
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        puuuuu ihr sagt das so leicht... leider hab ich nicht sehr viel ahnung von php der code war nur ein zufallstreffer über google ;-)

        also ich wäre um hilfe sehr dankbar !!
        Free File hosting by Bilder-Hoster.de

        Kommentar


        • #5
          Re: Verzeichniss auslesen und dateinamen in eine Datei schreiben ?!

          PHP-Code:
          $dir "files/";
          $handle opendir($dir);
          $files = array();
          while(
          $file readdir($handle)) {
          if((
          $file != "..") AND ($file != ".")) $files[] = $file;
          }
          closedir($handle);
          $n = (count(files)==1)?"":"n";
          echo 
          count($files);
          shuffle($files);
          for (
          $i 1$i <= 500$i++) {
           echo 
          "<a href=\"".$dir.$files[i]."\">".$files[i]."</a><br>\r\n";

          So sollte es funktionieren. Wenn deine PHP-Version älter als 4.2.0 ist, musst du noch z.B. srand ((float)microtime()*1000000); vor shuffle($files) setzen.

          EDIT:
          Achja, wenn weniger als 500 Dateien im Ordner sind, gibt es auch ein Problem...
          Zuletzt geändert von Heini81; 19.11.2005, 17:58.

          Kommentar


          • #6
            Re: Re: Verzeichniss auslesen und dateinamen in eine Datei schreiben ?!

            Original geschrieben von Heini81
            Achja, wenn weniger als 500 Dateien im Ordner sind, gibt es auch ein Problem...
            Leicht zu vermeiden ...
            PHP-Code:
            for ($i=0$i 500$i++) {
              if(!isset(
            $files[i])) break;
              echo 
            '<a href="'.rawurlencode($dir.$files[i]).'">'.$files[i]."</a><br>\r\n";

            Btw: Index sollte natürlich bei 0 anfangen, und rawurlencode sollte auch nicht fehlen, falls die Bildnamen Sonderzeichen enthalten.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Genau... Würde Fußball nicht schon angefangen haben, hätte ich es selbst gemacht....

              Kommentar


              • #8
                Re: Re: Verzeichniss auslesen und dateinamen in eine Datei schreiben ?!

                Original geschrieben von Heini81
                PHP-Code:
                $dir "files/";
                $handle opendir($dir);
                $files = array();
                while(
                $file readdir($handle)) {
                if((
                $file != "..") AND ($file != ".")) $files[] = $file;
                }
                closedir($handle);
                $n = (count(files)==1)?"":"n";
                echo 
                count($files);
                shuffle($files);
                for (
                $i 1$i <= 500$i++) {
                 echo 
                "<a href=\"".$dir.$files[i]."\">".$files[i]."</a><br>\r\n";

                So sollte es funktionieren. Wenn deine PHP-Version älter als 4.2.0 ist, musst du noch z.B. srand ((float)microtime()*1000000); vor shuffle($files) setzen.

                EDIT:
                Achja, wenn weniger als 500 Dateien im Ordner sind, gibt es auch ein Problem...
                ne das wars noch nicht ganz ...

                schau mal das hat er jetzt ausgeworfen !

                26889<a href="files/"></a><br>
                <a href="files/"></a><br>
                <a href="files/"></a><br>
                <a href="files/"></a><br>
                <a href="files/"></a><br>
                Free File hosting by Bilder-Hoster.de

                Kommentar


                • #9
                  das ganze hat er übriegens 500 mal gemacht nur eben leer. ich weiß auch ehrlich gesagt nicht wo der fehler ist..
                  Free File hosting by Bilder-Hoster.de

                  Kommentar


                  • #10
                    Was steht denn in deinem Array $files? Mach mal ein print_r($files); und poste mal ein bisschen vom Code...

                    Kommentar


                    • #11
                      PHP-Code:
                      $max=(sizeof($files)<500) ? $sizeof($files):500;
                      for (
                      $i 0$i $max$i++) { 
                      So lässt sich das Problem bei weniger als 500 Files lösen.

                      Kommentar

                      Lädt...
                      X