PHP » File system

 
 

La versatilità del PHP permette di eseguire anche le più comuni operazioni sui file. Abbiamo a disposizione diverse funzioni per interagire direttamente con il file system e che ci permettono di manipolare file e cartelle nel proprio web server.

Vedremo come eseguire le tre operazioni più comuni: copiare, eliminare e rinominare un file, sempre che i permessi di scrittura ce lo consentano.

Copiare un file

Il linguaggio dispone in modo nativo della funzione copy() per eseguire la copia di un file. La funzione accetta due argomenti: il percorso del file da copiare e quello del file di destinazione. Eccone un esempio:

$file1 = './contenitore/file.txt';
$copia = '../destinazione/copia/copia.txt';

copy( $file1, $copia );

Come già detto, è necessario disporre dei permessi di lettura per il percorso del file da copiare (file.txt), e dei permessi di scrittura per la destinazione. Tra l'altro, avremo la possibilità di dare un nuovo nome al file copiato, come vediamo.

Eliminare un file

Anche per cancellare un file abbiamo una funzione PHP che ci permette di farlo in modo nativo. Si chiama unlink().

Grazie a questa potremo eliminare i file ovunque si abbia accesso in scrittura nell'ambiente del server passando un unico argomento, il percorso del file da cancellare.

unlink('/sito/files/file.doc');  // elimina il file
rmdir('/sito/files');            // elimina directory

Come possiamo vedere dall'esempio, possiamo anche cancellare una intera directory, purché vuota.

Rinominare un file

La funzione preposta è rename() e permette anche di spostare il file in un nuovo percorso, oltre a cambiargli il nome. Come per la funzione copy() richiede due parametri: percorso origine e destinazione. Esempio:

$orig = '../percorso/file.txt';
$dest = '/destinaz/altra/dest.txt';

rename( $orig, $dest );

Tutte queste funzioni generano un errore di livello WARNING in caso di mancato successo dell'operazione