{"id":14,"date":"2011-04-08T12:43:05","date_gmt":"2011-04-08T10:43:05","guid":{"rendered":"http:\/\/www.tenzione.it\/?p=14"},"modified":"2011-04-08T12:43:05","modified_gmt":"2011-04-08T10:43:05","slug":"repost-hardcore-delete-in-php","status":"publish","type":"post","link":"https:\/\/www.tenzione.it\/?p=14","title":{"rendered":"[repost] Hardcore delete (in php)"},"content":{"rendered":"<p>L&#8217;altro giorno parlavo con una persona, l&#8217;identit\u00e0 di cui, per ovvie questioni di sensibilit\u00e0 e rispetto della privacy, deve rimanere riservata.<br \/>\nLa persona di cui sopra, si diceva, a cui daremo il nome <strong>fittizio<\/strong> di <a href=\"http:\/\/www.roomk.it\">Cristiano<\/a>, mi espone un curioso problema.<\/p>\n<p>Sull&#8217;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 \u00e8, salvo che pare non riuscirci. Mi collego e ci provo direttamente quindi, ed effettivamente, <em>colui che chiamiamo surrettiziamente Cris<\/em> ha decisamente ragione.<\/p>\n<p>Evidentemente, l&#8217;implementazione ftp del provider, che, sempre per questioni di opportunit\u00e0 non citer\u00f2, ma che ha prezzi molto bassi e servizi che vanno <em>a ruba<\/em>, non onora correttamente i comandi ftp.<\/p>\n<p>Gli propongo di provare in php, e gli propongo il seguente codice, <strong>ALTAMENTE SCONSIGLIATO<\/strong> a meno di non sapere <strong>VERAMENTE<\/strong> cosa fa, e cosa si vuol fare (kids, don&#8217;t try this at home).<\/p>\n<pre>&lt;?php\r\n# hardcore delete file\r\n\r\n$dir = \"cancellami\";\r\nfunction rmdirr($dir) {\r\n  if($objs = @glob($dir.\"\/*\")) {\r\n    foreach($objs as $obj) {\r\n      @is_dir($obj)? rmdirr($obj) : @unlink($obj);\r\n#      @is_dir($obj)? rmdirr($obj) : print \"cancello $obj &lt;br \/&gt;\";\r\n    }\r\n  }\r\n@rmdir($dir);\r\n}\r\nrmdirr($dir);\r\n\r\n?&gt;\r\n<\/pre>\n<p>upload, eseguito, e zap.<\/p>\n<p>(pensa se era la directory sbagliata).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&#8217;altro giorno parlavo con una persona, l&#8217;identit\u00e0 di cui, per ovvie questioni di sensibilit\u00e0 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&#8217;ftp di un piccolo sito che gestisce, non riesce a cancellare dei file. Io [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,9],"tags":[24,25,17,16],"class_list":["post-14","post","type-post","status-publish","format-standard","hentry","category-ti-ricordi","category-trucchi","tag-php","tag-programmazione","tag-robba","tag-vecchi-post"],"_links":{"self":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14"}],"version-history":[{"count":2,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts\/14\/revisions"}],"predecessor-version":[{"id":16,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts\/14\/revisions\/16"}],"wp:attachment":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}