[repost] Hardcore delete (in php)

L’altro giorno parlavo con una persona, l’identità di cui, per ovvie questioni di sensibilità e rispetto della privacy, deve rimanere riservata.
La persona di cui sopra, si diceva, a cui daremo il nome fittizio di Cristiano, mi espone un curioso problema.

Sull’ftp di un piccolo sito che gestisce, non riesce a cancellare dei file. Io gli dico che evidentemente deve escapare il nome dei file, che avranno degli (inutili) spazi, cosa che effettivamente è, salvo che pare non riuscirci. Mi collego e ci provo direttamente quindi, ed effettivamente, colui che chiamiamo surrettiziamente Cris ha decisamente ragione.

Evidentemente, l’implementazione ftp del provider, che, sempre per questioni di opportunità non citerò, ma che ha prezzi molto bassi e servizi che vanno a ruba, non onora correttamente i comandi ftp.

Gli propongo di provare in php, e gli propongo il seguente codice, ALTAMENTE SCONSIGLIATO a meno di non sapere VERAMENTE cosa fa, e cosa si vuol fare (kids, don’t try this at home).

<?php
# hardcore delete file

$dir = "cancellami";
function rmdirr($dir) {
  if($objs = @glob($dir."/*")) {
    foreach($objs as $obj) {
      @is_dir($obj)? rmdirr($obj) : @unlink($obj);
#      @is_dir($obj)? rmdirr($obj) : print "cancello $obj <br />";
    }
  }
@rmdir($dir);
}
rmdirr($dir);

?>

upload, eseguito, e zap.

(pensa se era la directory sbagliata).

Leave a Reply

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.