Come creare applicazioni web autoaggiornabili con php parte 3
Posted on 28. Sep, 2008 by Administrator in php, tutorials
Parte 1: http://www.sastgroup.com/...autoaggiornabili-con-php
Parte 2: http://www.sastgroup.com/...-autoaggiornabili-con-php-parte-2
Ultimo articolo che chiude i primi due su come creare applicazioni web autoaggiornabili con php.
Oggi vi incollo il codice, in seguito vediamo se lo scriviamo meglio:
< ?php //classe per la decompressione include('lib/php/pclzip.lib.php'); include('lib/php/utility.php'); $temp="tmp"; //cartella temporanea dove scaricare i files $filedascaricare="http://www.sito.com/ftptest.zip"; //prelevo il nome del file $filename=basename($filedascaricare); echo"1. Scarico il file : <strong>$filedascaricare ($filename) nella cartella "; echo"<strong>$temp</strong>"; sleep(2); //lo apro $handle = fopen("$filedascaricare", "rb"); if($handle){ $somecontent = get_file_contents("$filedascaricare"); fclose($handle); //e lo metto nella cartella temporanea $handle = fopen($temp."/".$filename, 'wb'); if($handle){ if (fwrite($handle, $somecontent) === FALSE) { echo " <strong>ERRORE</strong> a scrivere il file ($filename)"; exit; }else echo " <strong>Successo</strong>, scritto nel file ($filename)"; //cambio permessi chmod("$temp/$filename", 0777); sleep(2); //prendo il file e lo decomprimo nella cartella temporanea $archive = new PclZip("$temp/$filename"); if ($archive->extract(PCLZIP_OPT_PATH, "./$temp/",PCLZIP_OPT_REMOVE_PATH, '') == 0) { echo " ERRORE DECOMPRESSIONE"; }else echo" Files decompressi con successo"; sleep(2); echo"2. Elimino file $filename"; //cancello file zip if(unlink("$temp/$filename"))echo" $filename eliminato"; else echo" ERRORE eliminazione $filename"; sleep(2); echo"3 bis. Copio ricorsivamente files "; cp($temp,"."); sleep(2); echo"4. Elimino i files temporanei"; //eliminare tutti i file della cartella temporanea recursive_remove_directory($temp); //lo ricreo mkdir($temp,0777); //closedir($handled); fclose($handle); }else{ echo " Non riesco a creare il file ($filename)"; //exit; } } ?>









Leave a reply