Open In App

Copy the entire contents of a directory to another directory in PHP

Given a directory and the task is to copy the content of the directory to another directory using PHP functions. There are many functions used to copy the content of one directory to another.

Used Functions:



Example 1: This example uses readdir() function to read files from the source directory.




<?php
  
function custom_copy($src, $dst) { 
  
    // open the source directory
    $dir = opendir($src); 
  
    // Make the destination directory if not exist
    @mkdir($dst); 
  
    // Loop through the files in source directory
    while( $file = readdir($dir) ) { 
  
        if (( $file != '.' ) && ( $file != '..' )) { 
            if ( is_dir($src . '/' . $file) ) 
            
  
                // Recursively calling custom copy function
                // for sub directory 
                custom_copy($src . '/' . $file, $dst . '/' . $file); 
  
            
            else
                copy($src . '/' . $file, $dst . '/' . $file); 
            
        
    
  
    closedir($dir);
  
$src = "C:/xampp/htdocs/geeks";
  
$dst = "C:/xampp/htdocs/gfg";
  
custom_copy($src, $dst);
  
?>

Output:

Example 2: This example uses scandir() function to read files from the source directory.




<?php
    
function custom_copy($src, $dst) { 
   
    // open the source directory
    $dir = opendir($src); 
   
    // Make the destination directory if not exist
    @mkdir($dst); 
   
    // Loop through the files in source directory
    foreach (scandir($src) as $file) { 
   
        if (( $file != '.' ) && ( $file != '..' )) { 
            if ( is_dir($src . '/' . $file) ) 
            
   
                // Recursively calling custom copy function
                // for sub directory 
                custom_copy($src . '/' . $file, $dst . '/' . $file); 
   
            
            else
                copy($src . '/' . $file, $dst . '/' . $file); 
            
        
    
   
    closedir($dir);
}  
  
$src = "C:/xampp/htdocs/geeks";
  
$dst = "C:/xampp/htdocs/gfg";
  
custom_copy($src, $dst);
  
?>

Output:


Article Tags :