copiare cartella e sottocartelle

Ciao a tutti,

sto provando a copiare una cartella contentuta nel mio server web in un'altra.

OB:copiare pippo e tutto il suo contenuto su pluto.

La copia non mi funziona

<?PHP

  // loc1 is the path on the computer to the base directory that may be moved

define('loc1', 'var/www/miosito.it/mydir', true);

$source ="";

$dest ="";

  // copy a directory and all subdirectories and files (recursive)

  // void dircpy( str 'source directory', str 'destination directory' [, bool 'overwrite existing files'] )

function dircpy($source, $dest, $overwrite = true){

  if($handle = opendir(loc1 . $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(loc1 . $path)){

         if(!is_file(loc1 . $dest . '/' . $file) || $overwrite)

           if(!@copy(loc1 . $path, loc1 . $dest . '/' . $file)){

             echo '<font color="red">File ('.$path.') could not be copied, likely a permissions problem.</font>';

           }

       } elseif(is_dir(loc1 . $path)){

         if(!is_dir(loc1 . $dest . '/' . $file))

           mkdir(loc1 . $dest . '/' . $file); // make subdirectory before subdirectory is copied

         dircpy($path, $dest . '/' . $file, $overwrite); //recurse!

       }

     }

   }

   closedir($handle);

  }

} // end of dircpy()

?>

Credo che il mio problema stia nella definizione di locl, sourse e dest nel senso che non so in quale modo devo scrivere il percorso. Con var/www/ .... o con http://www......

Ho rpvato in diversi modi ma non sono riuscita a far funzionare la copia.

define('loc1', 'var/www/miosito.it/mydir', true); //a che cosa serve di preciso????

$source ="/var/www/miosito.it/pippo";

$dest ="/var/www/miosito.it/pluto";
inviato 10 anni fa
stellina
X 0 X

I percorsi da usare non devono essere degli URL.

PATH: var/www/...

URL: http://www.tuosito.it/...

la DEFINE serve a definire una costante, assegnandoli un valore che non potrą essere modificato durante l'esecuzione dello script:

http://it2.php.net/manual/en/function.define.php

 :bye:

P.S.: Controlla di avere i permessi in scrittura sulla cartella di destinazione e di lettura sulla cartella sorgente

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda