Come svuotare una cartella con php
29 Giugno 2017

Come svuotare una cartella con php

Se siete soliti lavorare con il filesystem, sicuramente vi capiterà di dover svuotare una cartella, cancellando tutto quello che c’è al suo interno.

Sicuramente, se il vostro web server gira su una distribuzione Linux un metodo veloce è il seguente:

exec("rm -fr dir/*");

Ma oltre a non essere molto sicuro, rischiando di cancellare anche qualcosa di troppo, non è neppure molto funzionale visto che su windows non funzionerebbe. Pertanto vediamo come fare in php:

  function emptyDir($path) {

    $path         = (substr($path, -1) == '/') ? $path : $path.'/';

    if (FALSE !== ($handle = opendir($path))) {

      while (false !== ($entry = readdir($handle))) {

        if ($entry !== '.' && $entry !== '..') {

          unlink($path.$entry);
        }
      }
      closedir($handle);
    }
  }

Direi che la funzione è piuttosto semplice ma vediamola nel dettaglio.

Per prima cosa aggiungo lo slash finale al percorso nel caso in cui questo non fosse presente. E’ solo per comodità. Poi apro la cartella. Io non ho gestito l’errore che potrebbe verificarsi con un path errato, lascio a voi l’implementazione! Se la cartella viene aperta correttamente uso la funzione readdir() che a ogni iterazione del ciclo while mi restituisce un elemento della cartella. Infine con unlink() cancelliamo i files!


Lascia un commento

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