kostenloser Webspace werbefrei: lima-city


Dateiauflistung ohne . und ..

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Hallo, ich habe mir aus dem Internet ein script gesucht, dass alle Dateien aus einem Verzeichnis anzeigen soll.
    Leider zeigt mir das Script ?ber den Dateien immer
    folgendes an:

    .
    ..


    Wie bekomme ich diese Punkte weg?
    Hier das Script:
    $verz=opendir ('../ausgaben');
    while($file = readdir ($verz)) 
    {  
    echo $file. "<br/>";
    }
    closedir($verz);
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Indem du sie ignorierst:

    $verz=opendir ('../ausgaben');
    while($file = readdir ($verz)) {
    if('..' == $file || '.' == $file) continue;
    echo $file. "<br/>";
    }
    closedir($verz);

    Es handelt sich ?brigens dabei um eine Art Hilfs-Verzeichnisse, die das aktuelle Verzeichnis (".") und das ?bergeordnete Verzeichnis ("..") darstellen.
  4. m********e

    versuchs ma mit:
    $verz=opendir ('../ausgaben/');
    while($file = readdir ($verz)) 
    if (!is_dir($file))
    echo $file. "<br/>";
    closedir($verz);


    das oben geht auch, macht aber nur die "ordnernamen" weg ..
    also mit dem script oben bekommst du auch andere ordner ausgegben, (ausser gleicher ordner (".") und eine ordnerebene hoch ("..")); mit meinem halt nur die dateien, die sich EVTL in dem ordner ausgaben befinden...

    Beitrag ge?ndert am 31.03.2006 18:00 von masterbene

    Beitrag ge?ndert am 31.03.2006 18:00 von masterbene
  5. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Vielen Dank, jetzt habe ich dazu noch eine Frage:

    Wie kann ich ausw?hlen, welche Dateitypen angezeigt werden?
    z.b.: es sollen nur Dateien mit der endung *.jpg *.gif angezeigt werden?

    (Habe das erste Script genommen)
  6. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    F?r *.jpg k?nnte das so aussehen:

    $verz=opendir ('../ausgaben/');
    while($file = readdir ($verz)) 
    if (!is_dir($file)) {
    if (eregi('jpg',$file)) {
    echo $file. "<br/>";
    }
    }
    closedir($verz);
  7. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Heisst das, dass ich bei jpg und gif dies schreiben muss?

    $verz=opendir ('../ausgaben/');
    while($file = readdir ($verz)) 
    if (!is_dir($file)) {
    if (eregi('jpg, gif',$file)) {
    echo $file. "<br/>";
    }
    }
    closedir($verz);


    Beitrag ge?ndert am 31.03.2006 18:22 von speedtouch92
  8. m********e

    eregi('jpg, gif',$file) wuerde z.B. in nem string der so aussaehe anschlagen: FILE1.jpg, gif
    das suchst du aber net ..
    du schst eins, dass dann anschlaegt:
    file1.jpg ODER bei file1.gif;
    also musst du schreiben:

    if (eregi('jpg',$file) || eregi('gif',$file))

    aallsssooo:
    $verz=opendir ('../ausgaben/');
    while($file = readdir ($verz)) 
    if (!is_dir($file)) {
    if (eregi('jpg',$file) || eregi('gif',$file)) {
    echo $file. "<br/>";
    }
    }
    closedir($verz);
  9. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Ah, danke, und wie kann ich NUR Ordenr anzeigen?
    (Au?er . und ..)
  10. c*********c



    speedtouch92 schrieb:
    Ah, danke, und wie kann ich NUR Ordenr anzeigen?
    (Au?er . und ..)


    Das entsprechende Script dazu sieht wie folgt aus:

    $verz=opendir ('../ausgaben/');
    while($file = readdir ($verz)) 
    {
      // Die if-Abfrage soll ?berpr?fen,
      // ob es sich um einen Ordner handelt.
      // Wenn is_dir(), true zur?ckgibt, soll
      // der Ordnername angezeigt werden.
      if (is_dir($file) == true)
      {
        print("Ordner: ". $file ."<br />");
      }
    }
    
    closedir($verz);
  11. Hi,

    das mit den jpg- und gif-Dateien find ich nicht besonders schlau. Was ist wenn eine Datei jpg.xls heisst? Dann wird diese Datei auch als jpg erkannt.

    Besser w?re so (Dateitypen durch die Endung der Datei erkennen):
    $dir = "./";
    $extensions = array("jpg","gif");
    $files = array();
    
    $dh = opendir($dir);
      while (($filename = readdir($dh)) !== false) {
        if (!in_array($filename,array(".",".."))) {
         $extension = end(explode(".",$filename));
         if (in_array($extension,$extensions) && is_file($dir . $filename)) $files[] = $dir . $filename;
        }
      }
    closedir($dh);
    
    print_r($files);


    mfg,
    hr

    Beitrag ge?ndert am 7.04.2006 02:21 von heavyraptor

  12. versuchs ma mit:
    $verz=opendir ('../ausgaben/');
    while($file = readdir ($verz)) 
    if (!is_dir($file))
    echo $file. "<br/>";
    closedir($verz);


    das oben geht auch, macht aber nur die "ordnernamen" weg ..
    also mit dem script oben bekommst du auch andere ordner ausgegben, (ausser gleicher ordner (".") und eine ordnerebene hoch ("..")); mit meinem halt nur die dateien, die sich EVTL in dem ordner ausgaben befinden...

    Beitrag ge?ndert am 31.03.2006 18:00 von masterbene

    Beitrag ge?ndert am 31.03.2006 18:00 von masterbene

    Soweit ich wei? sind "." und ".." Verzeichnisse. Es wird jedenfalls true bei "is_dir ()" zur?ckgegeben.

    @heavyraptor :
    Man kann zum ermitteln der Dateiendung auch einfachc "pathinfo ()" verwenden.
    Ist meist wensentlich einfacher. ;-)
    Sollte auch schneller laufen(, wenn auch nicht sp?rbar ^^), da es eine interne Funktion von PHP ist.

    MfG Lucas
  13. Wie ?blich gibt es in PHP hunderte Wege, ein Ziel zu erreichen. Und da ich anscheinend meistens der einzige bin, der halbwegs mit PCRE klarkommt, muss ich eben auch diesmal wieder die preg_match()-Variante vorstellen:

    $tag_list = '/\.(jpg|gif|png|bmp)\Z/i';

    $dh = @opendir($dir);
    if(FALSE === $dh) die('Verzeichnis jibbet net!');
    while($entry = @readdir($dir) ) {
    if('.' == $entry || '..' == $entry) continue;
    if( is_dir($dir.DIRECTORY_SEPARATOR.$entry) ) continue;
    if( !preg_match($tag_list, $entry) ) continue;
    // hier g?ltige Dateien einsammeln
    // oder ausgeben
    printf('%s<br />', $entry);
    }
    @closedir($dir);

    Vorteile gegen?ber den anderen L?sungen:
    * es wird nur die letzte Datei-Endung gepr?ft;
    * es werden auch gro?geschriebene Endungen (Bsp: "*.JPG") erkannt.
    * spart Speicher (gegen?ber explode() )
    * ist schneller (gegen?ber ereg_...() )



    Beitrag ge?ndert am 7.04.2006 23:39 von alopex
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!