tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
517
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Funky_MF
    Funky_MF Funky_MF ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Unterfranken (Bayern)
    Beiträge
    127
    Ich steh mal wieder auf dem Schlauch, hiermit lese ich ein Verzeichnis aus und stell die darin enthaltenen Files als Links dar:
    PHP-Code:
    <?php

    $dir 
    '/www/htdocs/public'
    $content opendir($dir);

    while(
    $file readDir ($content)) { 
          if((
    $file != ".") && ($file != "..") && ($file != ".htaccess") && ($file != ".htpasswd") && ($file != "index.php")) { 
                echo 
    "<a href=\"/public/".$file."\">".$file."</a><br>"
                } if (empty(
    $file)) {
                      echo 
    "Zur Zeit sind keine Dateien zum Download verfügbar";
                      }
          }
          
    ?>
    Soweit so gut, allerdings wird mir im Fall, daß das Vereichnis leer ist, nichts angezeigt, dabei überprüfe ich dies ja mit if (empty($file)) , aber das scheint wohl nicht richtig zu sein. Kann mir da jemand weiterhelfen ?
     
    Es ist keine Schande, nicht alles zu wissen;
    wohl aber, es nicht zugeben zu wollen.


    Wie man Fragen richtig stellt...

    KEINE ZIELGRUPPE

  2. #2
    Lumpi02 Lumpi02 ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Ort
    Vogtland
    Beiträge
    148
    Mal so auf die Schnelle...

    Solltest du nicht das Verzeichnis auf Leere prüfen, statt eine Datei?
     
    Gruß Lumpi02

    visit: http://www.dezueng.de

  3. #3
    Registriert seit
    Jan 2004
    Beiträge
    1.072
    $file kann nie empty werden, da sonst die Schleife vorher schon abbricht.
     

  4. #4
    Registriert seit
    Jun 2004
    Ort
    Stuttgart (BW)
    Beiträge
    1.746
    Dein Problem ist, das $file nie empty werden kann.
    Aber so müsste es gehen:
    PHP-Code:
    $dir './test';
    $content opendir($dir);
    $i 0;
    while(
    $file readDir ($content))
    {
      if((
    $file != ".") && ($file != "..") && ($file != ".htaccess") && ($file != ".htpasswd") && ($file != "index.php"))
      {
        echo 
    "<a href=\"/public/".$file."\">".$file."</a><br>";
        
    $i++;
      }
    }
    if(
    $i == 0)
      echo 
    "Zur Zeit sind keine Dateien zum Download verfügbar"
    redlama
     
    Wissen ist Macht! Nichts wissen macht auch nichts, ...
    www.redlama.org

  5. #5
    Avatar von Nils Hitze
    Nils Hitze Nils Hitze ist offline Admin a.D.
    Registriert seit
    Sep 2000
    Ort
    Dachau
    Beiträge
    2.201
    Blog-Einträge
    104
    Hab da was ... ist eine alte Klasse von mir mit ein wenig zusätzlichem Klimmbimm.
    Wenn du alle Dateien anzeigen möchtest setze einfach eine aureichend hohe Zahl
    als Parameter ein und für page kannst du 0 einsetzen. Ansonsten hast du die Möglichkeit
    die Dateien seitenweise auszugeben .. über $class->temp_files bekommst du ein Array zurück.

    PHP-Code:
    class file_collector
    {
        var 
    $block_array;

        var 
    $temp_names;
        var 
    $temp_files;
        
        var 
    $page;
        var 
    $perpage;

        var 
    $files;
        var 
    $pages;
        
        var 
    $counter;
        var 
    $done;
        
        function 
    file_collector($dir,$block,$page=0,$perpage=0)
        {
            if(!
    is_dir($dir))
                return 
    FALSE;
                
            
    $this->block_array $block;

            
    $this->temp_names = array();
            
    $this->temp_files = array();

            
    $this->page        =    $page;
            
    $this->perpage    =    $perpage;
            
            
    $this->files    =    0;
            
            if(
    $dir == "")       $dir ".";
            
            
    $this->counter    =    $this->perpage $this->page;
            
    $this->done    =    0;
        
            
    $this->filecount($dir);
            
            
    $this->pages    =    ceil($this->files/$perpage)-1;

            
    $this->collect($dir);
        }

        function 
    filecount($dir)
        {
            if(isset(
    $dir_handle)) 
                
    closedir($dir_handle);

            
    $dir_handle    =    opendir($dir);
            
            while(
    $_var    =    readdir($dir_handle))
            {
                
    $_path $dir."/".$_var;
                if((
    is_dir($_path))
                && (
    $_var != ".")
                && (
    $_var != "..")
                && (!
    in_array($_var,$this->block_array)))
                    
    $this->filecount($_path);

                if(!
    is_dir($_path))
                    
    $this->files++;
            }
        }
        
        function 
    collect($dir)
        {
            if(isset(
    $dir_handle)) 
                
    closedir($dir_handle);

            
    $dir_handle    =    opendir($dir);
            
            while(
    $_var    =    readdir($dir_handle))
            {
                if(
    $this->done==($this->counter+$this->perpage))
                    break;
                    
                
    $_path $dir."/".$_var;

                if((
    is_dir($_path))
                && (
    $_var != ".")
                && (
    $_var != "..")
                && (!
    in_array($_var,$this->block_array)))
                    
    $this->collect($_path);

                if(!
    is_dir($_path))
                {
                    
    $this->done++;
                    
                    if(
    $this->done<=$this->counter)
                        continue;
                
                    
    $this->temp_names[] = array("path"=>$dir,
                                                
    "file"=>strtolower($_var));
                    
    $this->temp_files[] = $_path;
                }
            }
        }

     

  6. #6
    Avatar von Funky_MF
    Funky_MF Funky_MF ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Unterfranken (Bayern)
    Beiträge
    127
    Vielen Dank für die Hilfe

    @redlama: genauso wollte ich es haben !

    @Nils: Dank dir auch, aber mit OOP bin ich noch nicht so vertraut, werds mir aber trotzdem mal anschauen, kann bestimmt noch was draus lernen

    Gruß Funky
     
    Es ist keine Schande, nicht alles zu wissen;
    wohl aber, es nicht zugeben zu wollen.


    Wie man Fragen richtig stellt...

    KEINE ZIELGRUPPE

Ähnliche Themen

  1. Verzeichnis auslesen?
    Von buba im Forum .NET Windows Forms
    Antworten: 14
    Letzter Beitrag: 05.08.09, 20:01
  2. Antworten: 2
    Letzter Beitrag: 17.02.09, 10:15
  3. PHP Verzeichnis auslesen.
    Von parawaiter im Forum PHP
    Antworten: 2
    Letzter Beitrag: 16.12.08, 16:52
  4. Antworten: 0
    Letzter Beitrag: 13.11.05, 15:29
  5. Verzeichnis auslesen?`!
    Von yzarow im Forum PHP
    Antworten: 5
    Letzter Beitrag: 22.09.05, 16:03