Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 52
  1. #1

    copiare una cartella intera

    so che esistono dei codici per copiare una cartella intera.
    ecco il primo:

    codice:
    <?php
    // copydirr.inc.php
    /*
    26.07.2005
    Author: Anton Makarenko
       makarenkoa at ukrpost dot net
       webmaster at eufimb dot edu dot ua
    */
    function copydirr($fromDir,$toDir,$chmod=0757,$verbose=false)
    /*
       copies everything from directory $fromDir to directory $toDir
       and sets up files mode $chmod
    */
    {
    //* Check for some errors
    $errors=array();
    $messages=array();
    if (!is_writable($toDir))
       $errors[]='target '.$toDir.' is not writable';
    if (!is_dir($toDir))
       $errors[]='target '.$toDir.' is not a directory';
    if (!is_dir($fromDir))
       $errors[]='source '.$fromDir.' is not a directory';
    if (!empty($errors))
       {
       if ($verbose)
           foreach($errors as $err)
               echo 'Error: '.$err.'
    ';
       return false;
       }
    //*/
    $exceptions=array('.','..');
    //* Processing
    $handle=opendir($fromDir);
    while (false!==($item=readdir($handle)))
       if (!in_array($item,$exceptions))
           {
           //* cleanup for trailing slashes in directories destinations
           $from=str_replace('//','/',$fromDir.'/'.$item);
           $to=str_replace('//','/',$toDir.'/'.$item);
           //*/
           if (is_file($from))
               {
               if (@copy($from,$to))
                   {
                   chmod($to,$chmod);
                   touch($to,filemtime($from)); // to track last modified time
                   $messages[]='File copied from '.$from.' to '.$to;
                   }
               else
                   $errors[]='cannot copy file from '.$from.' to '.$to;
               }
           if (is_dir($from))
               {
               if (@mkdir($to))
                   {
                   chmod($to,$chmod);
                   $messages[]='Directory created: '.$to;
                   }
               else
                   $errors[]='cannot create directory '.$to;
               copydirr($from,$to,$chmod,$verbose);
               }
           }
    closedir($handle);
    //*/
    //* Output
    if ($verbose)
       {
       foreach($errors as $err)
           echo 'Error: '.$err.'
    ';
       foreach($messages as $msg)
           echo $msg.'
    ';
       }
    //*/
    return true;
    }
    /* sample usage:
    WARNING:
    if You set wrong $chmod then You'll not be able to access files and directories
    in destination directory.
    For example: once upon a time I've called the function with parameters:
    copydir($fromDir,$toDir,true);
    What happened? I've forgotten one parameter (chmod)
    What happened next? Those files and directories became inaccessible for me
    (they had mode 0001), so I had to ask sysadmin to delete them from root account
    Be careful :-)
    <?php
    require('./copydirr.inc.php');
    copydirr('./testSRC','D:/srv/Apache2/htdocs/testDEST',0777,true);
    ?>
    */
    ?>

    poi c'è questo:

    codice:
    /*
    source files are in source directory
    */
    function SetupFolder($dir_name)
    {
       mkdir($dir_name,'0777');
       $folder = opendir('source');
       while($file = readdir($folder))
       {    
           if ($file == '.' || $file == '..') {
               continue;
           }
           if(is_dir('source/'.$file))
           {
               mkdir($dir_name.'/'.$file,0777);
               CopyFiles('source/'.$file,$dir_name.'/'.$file);
           }
           else 
           {    
               copy('source/'.$file,$dir_name.'/'.$file);
           }
       }
       closedir($folder);
       return 1;
    }
    //copy many files
    function CopyFiles($source,$dest)
    {    
       $folder = opendir($source);
       while($file = readdir($folder))
       {
           if ($file == '.' || $file == '..') {
               continue;
           }
           
           if(is_dir($source.'/'.$file))
           {
               mkdir($dest.'/'.$file,0777);
               CopySourceFiles($source.'/'.$file,$dest.'/'.$file);
           }
           else 
           {
               copy($source.'/'.$file,$dest.'/'.$file);
           }
           
       }
       closedir($folder);
       return 1;
    }
    il problema è che non riesco a settarli: mettiamo che voglio che la cartella prova viene copiata nella cartella abcartella come devo fare?
    grazie
    ciao

  2. #2
    Della prima devi passare la cartella da copiare ed il percorso in cui copiare.

    Nel secondo codice devi usare invece solo la seconda funzione (copyFiles) passando sempre la cartella da copiare ed il percorso in cui copiarla.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  3. #3
    non potresti riscrivermi il codice come settandolo come mi serve a me?
    qual'è il piu veloce dei due?

  4. #4
    Quale sia il più veloce non so diretlo. Se dovessi scegliere opterei sicuramente per il primo: più completo, più controlli, in definitiva migliore.

    Riscriverti il codice non posso perchè non so come ti serve!

    Posso farti un esempio!

    Funziona così:

    copydirr( 'path/della/cartella/da/copiare/' , 'nuova/posizione' ) ;

    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  5. #5
    ma io scrivendo solo

    copydirr( 'path/della/cartella/da/copiare/' , 'nuova/posizione' ) ;

    copio la cartella o è qualcosa da implementare nel primo script?

  6. #6
    No, ora ti spiego bene.

    Per richiamare il primo script devi usare

    copydirr( 'path/della/cartella/da/copiare/' , 'nuova/posizione' ) ;

    Per usare il secondo script, invece, devi usare

    copyFiles( 'path/della/cartella/da/copiare/' , 'nuova/posizione' ) ;

    Non devi fare altro. Solo includere il file che contiene lo script all'interno della pagina dove ti serve la funzione.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  7. #7
    ah capito grazie mille ci provo

  8. #8
    niente mi da errore di sintassi

  9. #9
    E che errore ti dà? Se non me lo dici come faccio a correggerlo?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  10. #10
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    Originariamente inviato da kikkolino
    niente mi da errore di sintassi
    che dice?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.