Class PHP CompareFile

Chciałem wam zaprezentować nową klasę, którą stworzyłem do porównywania plików z danego folderu z plikiem tekstowym, w którym podajemy pliki do usunięcia lub do pozostawienia. __construct( $file1, $file2, $numeric ); Wszystko do ustawienia w parametrze wejściowym do klasy. Klasa bardzo prosta a jak nie kiedy potrzebna może wam się przyda na coś

Link do download na github Github class php CompareFile

Plik CompareFile.php



 * Porównuje pliki z wybranego folderu z plikiem tekstowym, zawierającym podaną ścieżkę do pliku.
 * Pliki nie znajdujące się na liście usuwa z podanego folderu. 
 *  0 usuń pliki wskazane w pliku tekstowym
 *  1 zachowaj pliki wskazane w pliku tekstowym
 *******************************************************************************************
 * Compares files from the selected folder with a text file containing the specified path to the file.
 * Files that are not in the list are removed from the specified folder.
 * 0 delete the files indicated in the text file
 * 1 keep the files indicated in the text file
 */
   public $file1;
   public $file2;
   private $numeric;
   public $error = array();
   private $Tab  = array();
   private $Tab1 = array();
     /**
      *  _construct( $file1, $file2, $numeric )
      *  string $file1 lokalizacja pliku tekstowego
      *  string $file2 lokalizacja plików
      *  int $numeric wybór zadania
      *  return null
      *  0 usuń pliki wskazane w pliku tekstowym
      *  1 zachowaj pliki wskazane w pliku tekstowym
      */
      public function __construct( $file1, $file2, $numeric ){
             $this->file1 = $file1;
             $this->file2 = $file2;
       
     if(is_numeric($numeric)){
         
    $this->numeric = $numeric; 
         
     }else{
       
    $this->error[] = " Podaj prawidłowy parametr Numerik "; 
      
     }   
         }
   /**
   * string $file1
   * sprawdzenie czy plik znajduje się w podanej ścieżce 
   * return boolea
   */
      private function check_dir($file){
     
   //if(file_exists($file1) && is_dir($file1)){
       if(file_exists($file)){
       
         return true;
     
         }else{
     $this->error[] = " Błędna lokalizacja pliku lub folderu ";
          // throw new Exception(" Błędna lokalizacja pliku lub folderu ");
         return false;
          }
       }
        /**
          * plik tekstowy
          * obiekt string $this->file1
          * obiekt array() $this->error
          * obiekt array() $this->Tab
          */
       public function load_text_file(){
           if($this->check_dir($this->file1)){   
                if(is_array(file($this->file1))){
         // czyścimy trim ze śmieci
         $this->Tab = explode(",",implode(',', array_map('trim', file($this->file1))));
                  }else{
                    $this->error[] =" Tablica jest pusta ";
                   }
              }else{
  
               //throw new Exception("Błędna lokalizacja pliku tekstowego");
                 $this->error[] =" Błędna lokalizacja pliku tekstowego ";
              }
        }
     /**
      * obiekt string  $this->file1
      * obiekt array() $this->error
      * obiekt array() $this->Tab1
      */
      public function load_dir(){
           if($this->check_dir($this->file2)){
                // $dir  = dirname(__FILE__) .'/pliki';
        $this->Tab1 = array_diff(scandir($this->file2), array('..', '.'));
                // $this->Tab1 = scandir($this->file2);
              }else{
               //throw new Exception("Błędna lokalizacja pliku tekstowego");
              $this->error[]  =" Błędna lokalizacja pliku tekstowego ";
           }
        }
   /**
    *
    * obiekt array() $this->Tab1
    * obiekt array() $this->Tab
    * obiekt $this->file2
    * obiekt $this->numeric
    * array() $zle_usun
    * array() $dobre
    */
       public function compare_file(){
        if(is_array($this->Tab1)){
    //print_r($this->Tab1);
     //Var_dump($this->Tab);
    // Var_dump($this->Tab1);
    
         foreach($this->Tab1 as $spr){
     
    if(in_array( $spr, $this->Tab )){
                  // echo $spr;
                    $dobre[] = $spr;
    // numeric 0 
    if($this->numeric == 0){
    //  $wyn  = array_merge($this->Tab[0], $this->Tab1);        
                         //  $wyn1 = array_unique( $wyn );
     if($this->check_dir($this->file2)){
                     unlink($this->file2."/".$spr);
              }
           }
                }else{
        // numeric 1 
    if($this->numeric == 1){
                   $zle_usun[] = $spr;
    // Usuwamy pliki zbędne
         //array_map( "unlink", glob(dirname(__FILE__) .'/pliki/*'.$plik.'.clu') );
     if($this->check_dir($this->file2)){
                     unlink($this->file2."/".$spr);
              }
         }
                }
         
       
     }
             } else {
           $this->error[] =" Tablica jest pusta ";
          }
          
         if(!empty($dobre) || !empty($zle_usun)){
      
          $this->error[] ="Usunięto Wszystko OK  "; 
     }else{
    // throw new Exception("Tablica jest pusta");
     $this->error[] =" Usunięto ";
       }     
        }
     /**
      * obiekt string $this->error
      * return obiekt string $this->error
      */
      public function Error(){
          if(!empty($this->error)){
        
       return $this->error;           
            }
    }
}
?>

Plik index.php


load_text_file();
  $pliki->load_dir();
  $pliki->compare_file();
  
  // Wypisujemy błędy
   echo $pliki->Error()[0];
?>

Używamy cookies i podobnych technologii m.in. w celach: świadczenia usług, reklamy, statystyk. Korzystanie z witryny bez zmiany ustawień Twojej przeglądarki oznacza, że będą one umieszczane w Twoim urządzeniu końcowym. Pamiętaj, że zawsze możesz zmienić te ustawienia. To find out more about the cookies we use and how to delete them, see our privacy policy.

I accept cookies from this site.

EU Cookie Directive Module Information