1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Mit PHP ein Ordner auslesen

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von balufreak, 28.05.2004.

  1. balufreak

    balufreak Thread Starter MacUser Mitglied

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    Hallo Leute!

    Ich möchte gerne ein Downloadbereich machen auf meiner Homepage. Damit ich die Links nicht immer selbst in die Datenbank eintragen will, möchte ich gerne ein Script mit PHP machen, das die Dateien in einem Ordner auslist und dann verlinkt. Geht das überhaupt?

    Greets balu
     
  2. Delmar

    Delmar MacUser Mitglied

    Mitglied seit:
    28.09.2002
    Beiträge:
    803
    Zustimmungen:
    1
    Jupp ... das geht wunderbar:

    PHP:
    <?PHP
    $verz
    =opendir ('.');
    while (
    $file readdir ($verz)) {
      if(
    $file != "." && $file != "..") echo "$file <br>";
    }
    closedir($verz); 
    ?>
    Durch die if-Bedingung werden nur die Dateien und Verzeichnisse ausgelesen bzw.
    angezeigt, nicht aber "." (steht für das Verzeichnis in dem Du Dich gerade befindest) und
    ".." (steht für die Verzeichnisebene über der jetzigen).


    Gruß
    Delmar
     
  3. xlqr

    xlqr MacUser Mitglied

    Mitglied seit:
    08.09.2003
    Beiträge:
    1.942
    Zustimmungen:
    15
    hallo delmar
    mit verlinkung heists doch so?
    PHP:
    echo "<a href='$file'>$file</a> <br>";
    meine frage: ich hab meine seite in gleichen ordner wie die zu downloadenden files:
    down/down.php
    was könnte ich schreiben, dass die down.php nicht in meiner file liste erscheint?
    ich krieg immer nur ein entweder oder hin...

    merci
     
  4. Delmar

    Delmar MacUser Mitglied

    Mitglied seit:
    28.09.2002
    Beiträge:
    803
    Zustimmungen:
    1
    &nbsp;

    Jupp. Sofern Du Dich mit Deinem Script in dem gleichen Verzeichnis befindest, wie die
    Dateien, auf die Du verlinkst. Ist dies nicht der Fall, musst Du noch das Verzeichnis an-
    geben. Da Du dies beim Auslesen schon getan hast, kannst Du einfach schreiben:

    PHP:
    echo "<a href='$verz/$file'>$file</a> <br>";

    &nbsp;

    Die if-Bedingung musst Du wie folgt erweitern:

    PHP:
    _if($file != "." && $file != ".." && $file != "down.php") echo "$file <br>"
    Damit wird die Datei "down.php" nicht berücksichtigt, da Du ja die Bedingung stellst, dass
    alle Dateien außer "." und ".." und "down.php" angezeigt werden sollen.


    Gruß
    Delmar
     
  5. xlqr

    xlqr MacUser Mitglied

    Mitglied seit:
    08.09.2003
    Beiträge:
    1.942
    Zustimmungen:
    15
    herzlichen dank!
     
  6. balufreak

    balufreak Thread Starter MacUser Mitglied

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    Danke für die vielen Antworten!

    Wie kann ich aber nur ein bestimmtes verzeichnis auslesen? Ich hab das bis jetzt nicht hingekriegt..
     
  7. Delmar

    Delmar MacUser Mitglied

    Mitglied seit:
    28.09.2002
    Beiträge:
    803
    Zustimmungen:
    1
    Das bestimmte Verzeichnis kannst Du im "opendir()" Befehl angeben!

    PHP:
    <?PHP 
    $verz
    =opendir ('Pfad/DeinVerzeichnis'); 
    while (
    $file readdir ($verz)) { 
          if(
    $file != "." && $file != "..") echo "$file <br>"

    closedir($verz); 
    ?> 
     
  8. balufreak

    balufreak Thread Starter MacUser Mitglied

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    Guten Morgen Leute!

    Ich bin jetzt fleissig an meinem kleinen Script dran. Ich bin jetzt hier angelangt:
    PHP:
    <? 
    $verz=opendir ('.'); 
    while (
    $file readdir ($verz))

      if(
    $file{0}!=".")
      {
        
    $endung strchr($file'.');
        
    $link substr($file0, -4);
        if(
    $file != "." && $file != ".." && $file != "index.php" && $file != "")
        {
          if(
    $endung!=".jpg")
          {
             echo 
    "<a href=\"$file\">$link</a><br>"
          }
          else
          {
             echo 
    "<div align=\"center\"><img src=\"$file\" alt=\"$link\"></div>";
          }
        }
      }

    closedir($verz); 
    ?>
    Nun habe ich aber das problem, wenn php die Bilder darstellt sind sie mitten der anderen Dateien. Also ich meinedas ungefähr so:

    datei
    datei2
    datei3
    BILD
    datei4
    datei5

    Jetzt meine Frage ist, ob man dies irgendwie sortieren kann. So zum Beispiel, dass zuerst alle Dateien kommen und dann die Bilder.

    greets balu
     
  9. Delmar

    Delmar MacUser Mitglied

    Mitglied seit:
    28.09.2002
    Beiträge:
    803
    Zustimmungen:
    1
    Man könnte beispielsweise das Ergebnis in ein Array schieben und danach alle Elemente
    ausgeben, die nicht die Endung '.gif' oder '.jpg' haben.

    PHP:
    foreach($deinArray as $value) {
       if(!
    substr($value'.gif') && !substr($value'.jpg'))
       {
            echo 
    $value;
        }
    }
    Analog dazu mit den Bildern:

    PHP:
    foreach($deinArray as $value) {
       if(
    substr($value'.gif') || substr($value'.jpg'))
       {
            echo 
    $value;
        }
    }
    Nicht schön und auch nicht elegant, aber es würde funktionieren. ;)
     
  10. balufreak

    balufreak Thread Starter MacUser Mitglied

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    Lösung gefunden

    Hab jetzt eine Lösung gefunden für das problem mit den bildern.
    Ich habe jetzt einfach einen Ordner gemacht, indem nur bilder sind. Und in diesem ornder steht halt nocheinmal das script.. ist eine nicht so super lösung, mit dem doppelten script.. aber es funktioniert.

    greets balu