Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Verzeichnisse auflisten wie bei Windows explorer

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.10.2002
    Beiträge
    96

    Verzeichnisse auflisten wie bei Windows explorer

    ich möchte alle Verzeichnisse, Unterverzeichnisse, und alle weitere Unterverzeichnisse auflisten genau so wie bei Windows explorer, also nur die Verzeichnisse keine dateien. kann mir da mal einer helfen.

    was ich bis jetzt gemacht habe, vieleicht ist das auch der verkehrte weg.

    PHP-Code:
    $verz=opendir (getcwd());
    while (
    $file readdir ($verz)){
        if(
    is_dir($file)){
            echo 
    "$file <br>";
        }
    }
      
    closedir($verz); 
    das zeigt mir aber nur die verzeichnisse in das angegebene $verz

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    das ist jetzt aber eine ganz andere Frage wie beim letzten mal aber Ok hier ein Beipeiel Siehe PHP Manual Funktionen des Dateisystems!
    [EDIT]
    Korrigiere mich, war wohl etwas zu schnell mit dem Posten.
    Den Momentanen Handle am besten in eine Datei oder Session speichern.
    Jedoch nach wie vor aber PHP5 Code
    PHP-Code:
    <?php
    ini_set
    ("max_execution_time"10);

    function 
    getdir($dir)
    {
        if(!isset(
    $buffer))
            
    $buffer = array();

        if (
    is_dir($dir)) {
            
    $dirs scandir($dir0);
            if (
    is_array($dirs)) {
                foreach(
    $dirs AS $di ) {
                    if(
    is_dir($di) && is_readable($di) && !preg_match("/^\.$/"$di) )
                        
    $buffer[] = $di;
                }
            }
            
    clearstatcache ();
        }
        return 
    $buffer;
    }

    echo 
    "<pre>";
     
    $home getcwd();
     
    print_r(getdir($home));
    echo 
    "</pre>";
    ?>
    Geändert von undefined (05-05-2004 um 18:52 Uhr)

  3. #3
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Habe ich vergessen zu schreiben geht nur mit PHP5 bei niedrigeren Version empfehle ich PHPlib von Kristian Köhnetopp http://kris.koehntopp.de/

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.10.2002
    Beiträge
    96
    hmm muss ich mal schauen, ich habe noch 4.x

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Ansonsten macht man sich einfach ne rekursive Funktion, das nun wirklich kein Beinbruch. Einfach für alle Verzeichnisse (außer "." und ".." sonst gibs unendliche Schleifen ) die Funktion neu aufrufen. Also, du machst eine Funktion die alle Verzeichniss in einem Verzeichniss auflistet, die als Parameter das Verzeichniss kreigt. In dieser Funktion ruft du dich für jedes Verzeichnis wieder selber auf.

    Dafür irgendne Lib oder PHP5 zu installieren ist _stark_ oversized
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  6. #6
    Registrierter Benutzer
    Registriert seit
    20.10.2002
    Beiträge
    96
    so habe ich das gemacht jedoch habe ich jetzt ein problem

    PHP-Code:
    $dir1 '/var/www/test.de';
    $DirectoriesToScan  = array(realpath('/var/www/test.de/'));
    $DirectoriesScanned = array();

    while (
    count($DirectoriesToScan) > 0) {
      foreach (
    $DirectoriesToScan as $DirectoryKey => $startingdir) {
       if (
    $dir = @opendir($startingdir)) {
         while ((
    $file readdir($dir)) !== false) {
           if ((
    $file != '.') && ($file != '..')) {
             
    $RealPathName realpath($startingdir.'/'.$file);
             if (
    is_dir($RealPathName)) {
               if (!
    in_array($RealPathName$DirectoriesScanned) && !in_array($RealPathName$DirectoriesToScan)) {
                 
    $DirectoriesToScan[] = $RealPathName;
               
    $DirList[] = $RealPathName;
               }
             } 
           }
         }
         
    closedir($dir);
       }
       
    $DirectoriesScanned[] = $startingdir;
       unset(
    $DirectoriesToScan[$DirectoryKey]);
      }
    }


    if(isset(
    $DirList)){
    $DirList array_unique($DirList);
    asort($DirList);
    }



    echo 
    '<select name="verzeichniss">';
    echo 
    '<option>'.$dir1.'</option>';
    foreach (
    $DirList as $dirname) {
      echo 
    '<option>'.$dirname.'</option>';
    }
    echo 
    '</select>'
    und zwar das script funktioniert nur wenn das script auch in /var/www/test.de liegt. liegt aber das script in /var/www/test2.de dann geht es nicht.

    ich glaube ich muss sudo anwenden oder wie wird das gemacht.

  7. #7
    Registrierter Benutzer
    Registriert seit
    20.10.2002
    Beiträge
    96
    so ich habe mein fehler, es liegt an der

    php_admin_value open_basedir /var/www/test.de

    wie kann ich das ändern, das open_basedir will ich eigentlich nicht wegnehmen.

  8. #8
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Habe es jetzt nur kurz überflogen. Verwende am besten die __FILE__ Konstante.
    PHP-Code:
    echo str_replace(basename(__FILE__), ""realpath(__FILE__)); 
    Bei Basedir kannst du .htaccess nehmen an sonsten dürfte es wenig bringen weil es von den Provider Einstellungen des Servers abhängt. Basedir verändern darf nur Root.
    Geändert von undefined (09-05-2004 um 18:36 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •