whatsapp
keyboard_arrow_down Contatti

Domenica

19

Novembre 2023

Copiare file e cartelle in php

Copiare file e cartelle in php

  1. blog Copiare file e cartelle in php
event_available
schedule

Come Copiare file e cartelle in php? Ho utilizzato questa semplice funzione che legge il contenuto di una cartella su un server e lo copia in un’altra posizione.

Con questa funzione potrai:

  • Copiare soltanto i file di una cartella sul server
  • Copiare file e cartelle in un’altra posizione
  • Copiare file e sottocartelle contenute in una directory principale.

Ti basterà specificare solamente il percorso di partenza e quello di destinazione, passandoli come parametri.

Procediamo per gradi e analizziamo la funzione:

Leggere e copiare solamente i file contenuti in una cartella in php

Con questa funzione in php potrai copiare tutti i file contenuti in una cartella. Dovrai passare come parametri solo il percorso di origine (in cui si trovano i file) e il percorso di destinazione (in cui vuoi copiare i file.

Per copiare i file faremo riferimento alle funzioni:

  • copy(): che serve per copiare un file da un percorso ad un altro
  • scandir(): che legge il contenuto di una cartella e lo trasforma in un array
$source = 'percorso/cartella/di/origine/';
$destination = 'percorso/cartella/di/destinazione/';

function ekw_copy_file($source, $destination) {

  //scansiona la cartella
  $array = scandir($source);
  
  foreach ($array as $item) {

    // non copio i file "." e ".."
    if ($item != "." && $item != "..") {
      $start = $source . $item;
      if (is_file($start)) {
        copy($start, $destination . $item);
        echo "File copiato: " . $source . $item;
      }
    }
  }
}

Ricordati di:

  • Inserire lo “/” finale nel percorso di origine e destinazione
  • Verificare che il percorso di origine e destinazione siano corretti
  • Utilizzare “path” e non “url” come percorsi dei file
  • La cartella di destinazione deve già essere creata, altrimenti restituirà un errore.

Puoi aggiungere questo codice per creare la cartella di destinazione se non è presente:

$destination = "percorso/cartella/didestinazione/";
if (!is_dir($destination)) {
  mkdir($destination, 0755, true);
}

Ariadne's Arts

Shop Online di Spiritualità e Cristalli

Bracciale feng shui pixiu Drusa in ametista Incenso angel protection Pirite grezza Bracciale in occhio di tigre
Visita lo Shop

Come copiare file, cartelle e sottocartelle in php

Con questa funzione php potrai copiare tutti i file contenuti in una cartella, comprese sottocartelle e file contenuti al loro interno.

Si tratta di una funzione ricorsiva che legge il contenuto di una cartella e copia tutti i file al suo interno nella medesima posizione. Quando incontra una sottocartelle allora esegue la stessa operazione anche per essa, creando un percorso di destinazione.

Ricordati di:

  • Passare il percorso giusto come parametro della funzione (path e non url)
  • Inserire lo “/” finale nel tuo percorso
  • aver già creato la cartella di destinazione
$source = 'percorso/cartella/di/origine/';
$destination = 'percorso/cartella/di/destinazione/';

function ekw_copy_file($source, $destination) {

  //scansiona la cartella
  $array = scandir($source);
  
  foreach ($array as $item) {

    // non copio i file "." e ".."
    if ($item != "." && $item != "..") {
      $start = $source . $item;

      // se si tratta di un file lo copia
      if (is_file($start)) {
        copy($start, $destination . $item);
        echo "File copiato: " . $source . $item;
      }
      //se è una sottocartella esegue la funzione ricorsiva
      elseif (is_dir($start)) {

        //creo la nuova sottocartella nel percorso di destinazione
        mkdir($destination . $item, 0755, true);

        echo "Cartella copiata: " . $destination . $item;

        //eseguo la funzione ricorsiva
        ekw_copy_file($start . '/', $destination . $item . '/');
      }
    }
  }
}

In questa funzione abbiamo integrato la funzione mkdir() di php per creare una nuova cartella nel percorso di destinazione (siccome le sottocartelle non esistono ancora)

Questa funzione è utile per:

Ti è piaciuto questo articolo?

favorite thumb_down
Autore articolo

Fabio

Sono un terribile realista. Pratico e determinato ma anche un grande sognatore, ecco perché do continuamente vita a nuovi progetti online e non. Nel 2019 ho fondato Eureka Web proprio per rendere possibile tutto questo. Insieme possiamo realizzare la tua idea!


Visita il sito
library_books

Leggi anche

Come inviare dati dei form con Ajax serialize() a php
Scopri
Come usare le chiavi API Google
Scopri
Come unire file Javascript e CSS in WordPress
Scopri

Contattami

perm_identity
alternate_email
phonelink_ring
message

Il tuo messaggio è stato inviato con successo!
Ti risponderemo a breve

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

message
perm_identity
alternate_email

keyboard_arrow_up