note 68377 deleted from function.copy by nlopess
| From: | nlopess@php.net | Date: | Tue, 25 Jul 2006 11:29:05 +0000 |
| Subject: | note 68377 deleted from function.copy by nlopess | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-115132@lists.php.net to get a copy of this message | ||
Note Submitter: SBoisvert at Don'tSpamMe dot Bryxal dot ca
----
just a quick note to add to teh great function by:
bobbfwed at comcast dot net
this little version has the path not in a define but as a function parameter and also creates the
destination directory if it is not already created.
<?php
// copy a directory and all subdirectories and files (recursive)
// void dircpy( str 'source directory', str 'destination directory' [, bool
'overwrite existing files'] )
function dircpy($basePath, $source, $dest, $overwrite = false){
if(!is_dir($basePath . $dest)) //Lets just make sure our new folder is already created. Alright so
its not efficient to check each time... bite me
mkdir($basePath . $dest);
if($handle = opendir($basePath . $source)){ // if the folder exploration is sucsessful,
continue
while(false !== ($file = readdir($handle))){ // as long as storing the next file to $file is
successful, continue
if($file != '.' && $file != '..'){
$path = $source . '/' . $file;
if(is_file($basePath . $path)){
if(!is_file($basePath . $dest . '/' . $file) || $overwrite)
if(!@copy($basePath . $path, $basePath . $dest . '/' . $file)){
echo '<font color="red">File ('.$path.') could not be
copied, likely a permissions problem.</font>';
}
} elseif(is_dir($basePath . $path)){
if(!is_dir($basePath . $dest . '/' . $file))
mkdir($basePath . $dest . '/' . $file); // make subdirectory before
subdirectory is copied
dircpy($basePath, $dest . '/' . $file, $overwrite); //recurse!
}
}
}
closedir($handle);
}
} // end of dircpy()
//Usage
dircpy('C:/Program Files/Apache Group/Apache2/htdocs', "/testfolder",
"/testfolder2", false);
?>