Ergebnis 1 bis 1 von 1

Thema: Verzeichnisse und Dateien in Textdatei speichern, abrufen und Verzeichnisse löschen

  1. #1
    Senior Avatar von Uranjitsu
    Registriert
    May 2016
    Beiträge
    207
    Gefällt mir!
    223
    Du gefällst: 158

    Verzeichnisse und Dateien in Textdatei speichern, abrufen und Verzeichnisse löschen

    Hat sich erledigt, mal wieder lag es nur an einem Satzzeichen, was nicht gesetzt wurde.
    Daher ist die Anfrage bzgl array, textdatei etc. völlig überflüssig und ich kann anhand der Datei die Pfade bestimmen.
    Aus
    PHP-Code:
        private function pKCFGAsceData($File '')
        {
            if (!empty(
    $File)) {
                if (
    file_exists(ROOT_PATH "includes/" $File "php")) {
                    return require 
    ROOT_PATH "includes/" $File "php";
                }
            }
        } 
    wurde
    Code:
        private function pKCFGAsceData($File = '')
        {
            if (!empty($File)) {
                if (file_exists(ROOT_PATH . "includes/" . $File . ".php")) {
                    return require ROOT_PATH . "includes/" . $File . ".php";
                }
            }
        }
    LG

    Ursprüngliche Anfrage:
    Spoiler ausklappen
    Hallo zusammen,

    ich möchte ein Verzeichnis einlesen und dabei Ordner sowie Dateien als Array listen und in einer Textdatei Speichern. Das geschieht bisher über folgendes Script:
    PHP-Code:
    /**
    * Finds path, relative to the given root folder, of all files and directories in the given directory and its sub-directories non recursively.
    * Will return an array of the form
    * array(
    *   'files' => [],
    *   'dirs'  => [],
    * )
    * @author sreekumar
    * @param string $root
    * @result array
    */
    function read_all_files($root '.'){
      
    $files  = array('files'=>array(), 'dirs'=>array());
      
    $directories  = array();
      
    $last_letter  $root[strlen($root)-1];
      
    $root  = ($last_letter == '\\' || $last_letter == '/') ? $root $root.DIRECTORY_SEPARATOR;
     
      
    $directories[]  = $root;
     
      while (
    sizeof($directories)) {
        
    $dir  array_pop($directories);
        if (
    $handle opendir($dir)) {
          while (
    false !== ($file readdir($handle))) {
            if (
    $file == '.' || $file == '..') {
              continue;
            }
            
    $file  $dir.$file;
            if (
    is_dir($file)) {
              
    $directory_path $file.DIRECTORY_SEPARATOR;
              
    array_push($directories$directory_path);
              
    $files['dirs'][]  = $directory_path;
            } elseif (
    is_file($file)) {
              
    $files['files'][]  = $file;
            }
          }
          
    closedir($handle);
        }
      }
     
      return 
    $files;
    }

    $output read_all_files('Laberecke_PHPKIT-1.6.6_V3.3-Autosource');

    echo 
    "<pre>";
    var_dump($output);
    echo 
    "</pre>"
    Ausgabe:
    Spoiler ausklappen
    Code:
    array(2) {
      ["files"]=>
      array(5) {
        [0]=>
        string(52) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\Anleitung.txt"
        [1]=>
        string(54) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\ASCE_Config.xml"
        [2]=>
        string(63) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\ASCE_Deinstall_addon.xml"
        [3]=>
        string(61) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\ASCE_Install_addon.xml"
        [4]=>
        string(68) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\test\bbcode\font.gif"
      }
      ["dirs"]=>
      array(3) {
        [0]=>
        string(48) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\"
        [1]=>
        string(53) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\test\"
        [2]=>
        string(60) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\test\bbcode\"
      }
    }

    In Datei speichern:
    PHP-Code:
    $string_data serialize($output);
    file_put_contents("file.txt"$string_data); 
    Inhalt Textdatei:
    Spoiler ausklappen
    a:2:{s:5:"files";a:5:{i:0;s:52:"Laberecke_PHPKIT-1.6.6_V3.3-Autosource\Anleitung.txt";i:1;s:54:"Laberecke_PHPK IT-1.6.6_V3.3-Autosource\ASCE_Config.xml";i:2;s:63:"Laberecke_PH PKIT-1.6.6_V3.3-Autosource\ASCE_Deinstall_addon.xml";i:3;s:61:"Lab erecke_PHPKIT-1.6.6_V3.3-Autosource\ASCE_Install_addon.xml";i:4;s:68:"Laber ecke_PHPKIT-1.6.6_V3.3-Autosource\includes\test\bbcode\font.gif";}s:4:"di rs";a:3:{i:0;s:48:"Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\";i:1;s:53:"Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\test\";i:2;s:60:"Laberecke_PHP KIT-1.6.6_V3.3-Autosource\includes\test\bbcode\";}}


    So scheint das wohl zu funktionieren (Es wird aber mehr gelöscht, als sollte):
    PHP-Code:
    echo "<br /><br />Unserilized:";
    $ar=unserialize(file_get_contents("file.txt"));

    echo 
    "<pre>";
    var_dump($ar);
    echo 
    "</pre>";

    /* 
     * php delete function that deals with directories recursively
     */
    function delete_files($target) {
        if(
    is_dir($target)){
            
    $files glob$target '*'GLOB_MARK ); //GLOB_MARK adds a slash to directories returned

            
    foreach( $files as $file ){
                
    delete_files$file );      
            }

            
    rmdir$target );
        } elseif(
    is_file($target)) {
            
    unlink$target );  
        }
    }

    array_walk_recursive($ar"delete_files");

    var_dump($ar); 
    Das Problem ist , dass gewisse Ordner mitgelöscht werden, die eben erhalten bleiben müssen und das dringend. Diese Ordner, die erhalten bleiben müssen, stehen in einer extra Datei:
    PHP-Code:
    return array(
        
    'admin',
        
    'cache',
        
    'captcha',
        
    'data',
        
    'docs',
        
    'includes',
        
    'lang',
        
    'templates',
        
    'admin\images',
        
    'admin\plugins',
        
    'captcha\backgrounds',
        
    'captcha\fonts',
        
    'data\database',
        
    'data\media',
        
    'data\thumbnails',
        
    'data\tmp_media',
        
    'data\tmp_thumbnails',
        
    'data\database\default',
        
    'lang\deutsch',
        
    'lang\english',
        
    'lang\spanish',
        
    'lang\deutsch\email',
        
    'lang\english\email',
        
    'lang\spanish\email',
        
    'templates\default_960px',
        
    'templates\default_960px\icons',
        
    'templates\default_960px\images',
        
    'templates\default_960px\images_english',
        
    'templates\default_960px\images_spanish',
        
    'templates\default_960px\media',
    ); 
    Das Bedeutet eigentlich folgendes: (Versuche das mal grafisch darzustellen):
    ROT = Darf nicht gelöscht werden
    GRÜN = Darf gelöscht werden
    Code:
    array(2) {
      ["files"]=>
      array(5) {
        [0]=>
        string(52) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\Anleitung.txt"
        [1]=>
        string(54) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\ASCE_Config.xml"
        [2]=>
        string(63) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\ASCE_Deinstall_addon.xml"
        [3]=>
        string(61) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\ASCE_Install_addon.xml"
        [4]=>
        string(68) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\test\bbcode\font.gif"
      }
      ["dirs"]=>
      array(3) {
        [0]=>
        string(48) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\"
        [1]=>
        string(53) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\test\"
        [2]=>
        string(60) "Laberecke_PHPKIT-1.6.6_V3.3-Autosource\includes\test\bbcode\"
      }
    }
    Vorgehensweise:
    • Dateien in Array Laden
    • Array in Textdatei speichern
    • Textdatei einlesen und an array übergeben
    • Anhand der oben aufgeführten Datei, überprüfen welche Ordner nicht gelöscht werden dürfen und nur dessen Inhalt
    • Dateien und Folder dementsprechend löschen


    Versuch:
    PHP-Code:
                    #Lösche alle Verzeichnisse, beginnend mit der tiefsten Struktur
                    
    $this->pKAsceDirs $this->pKCFGAsceData('asce_pkdir');
                    foreach (
    $STRTMP as $DelDirs) {
                        if (
    is_dir(ROOT_PATH $DelDirs)) {
                            if (!
    in_array($DelDirs$this->pKAsceDirs)) {
                                
    //$FTP_LOG .= $this->SetFtpCMD(array('ftp_rmdir', ROOT_PATH . $DelDirs . "/"));

    if(!rmdir(ROOT_PATH $DelDirs))
      {
      
    $FTP_LOG .= $this->infotext(2"Error Delete $DelDirs folder");
      }
    else
      {
      
    $FTP_LOG .= $this->infotext(1"Success Delete $DelDirs folder");
      }
                            }
                        }
                    }
                }
            }
            return 
    $FTP_LOG;
        }

        private function 
    pKCFGAsceData($File '')
        {
            if (!empty(
    $File)) {
                if (
    file_exists(ROOT_PATH "includes/" $File "php")) {
                    return require 
    ROOT_PATH "includes/" $File "php";
                }
            }
        } 
    Scheint nicht zu funktionieren...

    Danke im Voraus.
    Geändert von Uranjitsu (04.08.2018 um 10:59 Uhr)
    LG - Uranjitsu
    Simple Szene BBcode Generator ( TOT :/ )

    [CODESCHNIPSEL]

  2. Diesen Mitgliedern gefällt dieser Beitrag:


  3. Werbung - Hier werben?

Ähnliche Themen

  1. Whats App Status später abrufen?
    Von MongoBongo im Forum Daily Talk & Offtopic
    Antworten: 1
    Letzter Beitrag: 09.11.2021, 01:44
  2. rapidgator.net - Dateien löschen bei RG
    Von mnoszb41546 im Forum Hoster (OCH, Stream, ...)
    Antworten: 0
    Letzter Beitrag: 31.05.2021, 21:37
  3. (PHP) - Formular in Datenbank speichern
    Von Niko1604 im Forum Entwicklung / Programmierung
    Antworten: 6
    Letzter Beitrag: 06.12.2018, 04:49
  4. Folder2txt Ordnerinhalt in Textdatei
    Von udg im Forum Exploits, Codes & Tools
    Antworten: 0
    Letzter Beitrag: 15.03.2018, 01:36
  5. lftp + verzeichnisse + wildcards?
    Von userxyz im Forum Technik / Hardware & Software
    Antworten: 4
    Letzter Beitrag: 14.02.2017, 00:08

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org