Ankündigung

Einklappen
Keine Ankündigung bisher.

Script Frage...

Einklappen

Neue Werbung 2019

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

  • Script Frage...

    ich brauche eine Schleife, die von einem beliebigen
    root-Verzeichnis aus sämtliche Dateien und weitere Unterverzeichnisse
    bis zum Ende ausliest (sortiert) und am Ende in eine Datei schreibt.
    Es sollen nur html und pdf Dateien ausgelesen werden.
    z.B.
    index.htm
    uebersicht/overview.htm
    uebersicht/new_products.htm
    uebersicht/long_running.htm
    cpe/24cpe30305t.pdf
    cpe/48CPE30305TE_.PDF

    hier ist was ich vorgearbeitet habe:

    <?PHP
    $verz=opendir ('root'); # Startverzeichnis

    while ($file = readdir ($verz)) {
    if($file != "." && $file != "..")
    $str = dirname($verz);
    $str2= basename($file);
    # if (is_dir($verz)) # er erkennt die Verzeichnisse oft nicht als solche !
    echo "$str$str2
    "; # Ausgabe des kompletten pfades
    # echo "$file
    ";
    }closedir($verz);


    # $verz = 'c:/windows'; # er braucht den kompletten pfad !
    # if(is_dir($verz))
    # echo "Bei $verz handelt es sich um ein Verzeichnis";
    #else
    # echo "Bei $verz handelt es sich nicht um ein Verzeichnis";
    ?>

    #wechsel1 = chdir("logs"); # Für den späteren Wechsel in das Unterverzeicnis
    #echo $wechsel1 . "
    ";
    ?>

    Währe nett wenn jemand mir das Ganze korrigiert hier schreiben könnte...
    Danke...
    Maldus

  • #2
    Hallo,

    Da bei deinem kaum etwas gemacht ist :wink:
    hier mein schneller wurf!

    Ich hoffe ich habe keine Fehler gemacht!

    PHP-Code:
    <html>
    <head>
    <title>Durchsuche Verzeichnis</title>
    </head>
    <body>
    Starte die Suche!

    <?PHP 
    $root
    ="D:/temp/testdir";
    readdirectory($root);

    function 
    readdirectory($verz)
    {
        echo 
    ' start method '.$verz.
     '
    ;
        
    // Überprüfe ob das gegeben Verzeichnis existiert und ein Verzeichnis ist!!
        
    if (is_dir($verz))
        {
            
    // Öffne das Verzeichnis!!
            
    if ($dir opendir($verz)) {
                
                
    // Lese das Verzeichnis komplett
                
    while (($file readdir($dir)) !== false) {
                          
                          
    // Überprüfe filenamen . und ..
                          
    if ($file !== "." && $file != ".."
                          {
                              
    // Stopple das gesamte Verzeichnis plus Filenamen zusammen
                              
    $dirPart $verz."/".$file;
                              
                              
    // Überprüfe ob in dem Verzeichnis das gefundene Fileobjekt ein Unterverzeichnis ist
                              
    if (is_dir($dirPart))
                              {
                                  echo 
    ' call it once more with '.$dirPath.
     '
    ;
                                  
    // Aufruf der Funktion readdirectory rekursiv mit dem Unterverzeichnisnamen
                                  
    readdirectory($dirPart);
                              }
                              else
                              {             
                                                                    
                                  echo 
    ' File found '.$file.
     '
    ;
                                  
                                  
    // Überprüfe die Fileendung
                                  
    if(is_integer(strpos($file".htm")) || is_integer(strpos($file".pdf")))
                            {
                                echo 
    ' Write filename to textfile '.$verz.'/'.$file.'
     '
    ;
                                
    // Öffne das File (wenn es nicht existiert erstelle es) und schreibe am Ende weiter
                                
    $fp fopen("result_dir.txt""a");
                                
    fputs($fp$verz."/".$file."\r\n");
                                
    fclose($fp);
                            }
                              }
                         }
                      }
            }
            
        }
        else
        {
            echo 
    ' Das zu durchsuchende Verzeichnis ist nicht korrekt: '.$verz.
     '
    ;
        }
    }
    ?>
    </body>
    </html>
    Hoffe ich habe dir geholfen!

    Gernot

    Kommentar


    • #3
      Ja, Danke, funzt einwandfrei.

      Gruss

      Maldus

      Kommentar

      Lädt...
      X