Ho trovato sul manuale on line di PHP (http://it2.php.net/manual/it/function.ftp-rmdir.php ) la cancellazione ricorsiva di una directory piena da un server FTP.

Fin qui tutto bene ma...

...includendo la finzione in una classe non riesco a capire come fare la chimata ricorsiva della funzione stessa.

Questo il codice ( e quando usatelo pensatemi ... ) :
codice:
				
// CANCELLAZIONE DI UN FILE O DI UNA DIRCTORY (SE PIENA CANCELLA IN MODO RICORSIVO TUTTO IL CONTENUTO)
function CancellaFileDir($PathNomeFileDir) {
  $this->Errore = 0;

  echo "
Delete di " . $PathNomeFileDir;
  // Se NON si riesce ad effettuare la cancellazione del FileDir richiesto... (Directory piena)
  if (!(@ftp_rmdir($this->ConnessioneFTP, $PathNomeFileDir) || @ftp_delete($this->ConnessioneFTP, $PathNomeFileDir))) {
    // ... determina l'elenco dei files contenuti nella directory richiesta...
    $ElencoFiles = @ftp_nlist($this->ConnessioneFTP, $PathNomeFileDir);
    // ... se l'elenco dei files contenuti non è vuoto...
    if (!empty($ElencoFiles)) {
      // ... per ogni file in elenco...
      foreach($ElencoFiles as $FileInElenco) {
        // ... effettua la cancellazione in maniera ricorsiva - QUI DA ERRORE !!!!
        CancellaFileDir($FileInElenco);
      }
    }
    // Effettua la cancellazione del path principale richiesto
    if (!@ftp_rmdir($this->ConnessioneFTP, $PathNomeFileDir)) {
      $this->Errore = 601;
      $this->DescErrore = "Cancellazione via FTP di " . $PathNomeFileDir . " non effettuata per errore.";		
    } else {
      $this->DescErrore = "Cancellazione via FTP di " . $PathNomeFileDir . " effettuata correttamente.";
    }
  }
  if ($this->Errore != 0) {
    $Esito = FALSE;
  } else {
    $Esito = TRUE;
  }
  return $Esito;
}