giovedì 2 novembre 2017

Come cancellare una cartella in PHP

Dopo aver imparato come creare directory php, oggi vediamo il processo opposto, ovvero come cancellare cartelle php.
Questa funzionalità è potente quanto pericolosa, quindi va utilizzata con le pinze.
Se infatti eliminiamo una cartella dal server utilizzando il php, poi non ci sarà undo che tenga, e perderemo per sempre la directory rimossa via codice.

Se non vi ho spaventato troppo, continuate pure a leggere per scoprire come fare.


Come cancellare una cartella in PHP


Per poter eliminare directory in php, basta utilizzare la seguente sintassi:

rmdir("nome-cartella");

La funzione php rmdir è infatti in grado di cancellare qualsiasi cartella, a patto che si possiedano i necessari permessi di scrittura sul server.
Inoltre, va indicato l'esatto path della directory, altrimenti si incorrerà nel terribile errore: "No such file or directory".

Come al solito, per spostarsi di livello e cancellare cartelle presenti sopra lo script che esegue l'azione, va utilizzata la sintassi ms dos, linux: ../

Per evitare di incappare in spiacevoli errori dunque, è sempre meglio verificare l'esistenza della cartella che si vuole cancellare, come spiegato in questo post, ovvero scrivendo una cosa del genere:
<?php
    if(is_dir("cartella")) rmdir("cartella");
?>

Un'ultima importante precisazione: con rmdir php è possibile cancellare solo cartelle vuote.
Se infatti si tenterà di cancellare una directory con all'interno file o altre cartelle, verrà riportato il seguente errore: "Directory not empty".
Per cancellare una cartella non vuota in php, occorrerebbe dunque creare una funzione apposta che ricorsivamente svuoti prima la cartella (e le sottocartelle)... ma questo è un altro post (cit.)

Lascia un commento!