copy entire directory but exclude some files php -


trying find way copy entire directory exclude files, in case need exclude directory contain 1 file png... figured use similar code have absolutely no clue how exclude file

function xcopy($source, $dest, $permissions = 0755) {     // check symlinks     if (is_link($source)) {         return symlink(readlink($source), $dest);     }      // simple copy file     if (is_file($source)) {         return copy($source, $dest);     }      // make destination directory     if (!is_dir($dest)) {         mkdir($dest, $permissions);     }      // loop through folder     $dir = dir($source);     while (false !== $entry = $dir->read()) {         // skip pointers         if ($entry == '.' || $entry == '..') {             continue;         }          // deep copy directories         xcopy("$source/$entry", "$dest/$entry", $permissions);     }      // clean     $dir->close();     return true; } 

here function may work you. have notated clarification:

<?php     function copydirectory($settings = false)         {             // script may take time if there lots of files             ini_set("max_execution_time",3000);             // validation , pre-sets             $directory  =   (isset($settings['dir']) && !empty($settings['dir']))? $settings['dir'] : false;             $copyto     =   (isset($settings['dest']) && !empty($settings['dest']))? $settings['dest'] : false;             $filter     =   (isset($settings['filter']) && !empty($settings['filter']))? $settings['filter'] : false;             // add copy destinations not copy otherwise             // have infinite loop of files being copied             $filter[]   =   $copyto;             // stop if directory not set             if(!$directory)                 return;             // create recursive directory iterator             $dir        =   new recursiveiteratoriterator(new recursivedirectoryiterator($directory),recursiveiteratoriterator::child_first);              try{                  foreach($dir $file) {                         $copydest   =   str_replace("//","/",$copyto."/".str_replace($_server['document_root'],"",$file));                         $compare    =   rtrim($file,".");                         if(is_dir($file)) {                                 if(!is_dir($copydest)) {                                         if(!in_array($compare,$filter)) {                                                 if(isset($skip) && !preg_match("!".$skip."!",$file) || !isset($skip))                                                     @mkdir($copydest,0755,true);                                                 else                                                     $record[]   =   $copydest;                                             }                                         else {                                                 $skip       =   $compare;                                             }                                     }                             }                         elseif(is_file($file) && !in_array($file,$filter)) {                                 copy($file,$copydest);                             }                         else {                                 if($file != '.' && $file != '..')                                     $record[]   =   $copydest;                             }                     }                 }             // catch errors in copying (like permission errors)             catch (exception $e)                 {                     $error[]    =   $e;                 }         }      // copy     $settings['dir']        =   $_server['document_root'];     // copy     $settings['dest']       =   $_server['document_root']."/tester";     // files , folders not include contents     $settings["filter"][]   =   $_server['document_root'].'/core.processor/';     $settings["filter"][]   =   $_server['document_root'].'/config.php';     $settings["filter"][]   =   $_server['document_root'].'/client_assets/images/';      // create instance     copydirectory($settings); ?> 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -