Come creare applicazioni web autoaggiornabili con php – parte 2

Posted on 15. Sep, 2008 by Administrator in php, tutorials


Eccoci alla parte 2 del nostro articolo su come creare applicazioni web autoaggiornabili con php.
Se hai perso la parte 1, ecco il link: http://www.sastgroup.com/tutorials/come...autoaggiornabili-con-php

In questo articolo vedremo le funzioni che utilizzeremo nel nostro articolo. Creiamo un file utility.php che le conterrà:

 
< ?
//questa funzione è usata per recuperare il contenuto di un file.
// è una alternativa a alla funzione file_get_contents di php5
function get_file_contents($filename)
{
      if (!function_exists('file_get_contents'))
      {
      $fhandle = fopen($filename, "r");
      $fcontents = fread($fhandle, filesize($filename));
      fclose($fhandle);
      }
      else
      {
      $fcontents = file_get_contents($filename);
     }
      return $fcontents;
}
 
//copia directory sorgente alla directory destinazione
function cp($wf, $wto){ // it moves $wf to $wto
if (!file_exists($wto)){//the improvement
mkdir($wto,0777) or die ("Could not chmod destination (this is line 21");
}
$arr=ls_a($wf);
foreach ($arr as $fn){
if($fn){
$fl="$wf/$fn";
$flto="$wto/$fn";
if(is_dir($fl)) cp($fl,$flto);
else copy($fl,$flto) or die ("could not copy directory ");
}
}
}
function ls_a($wh){
if ($handle = opendir($wh)) {
while (false!== ($file = readdir($handle))) {
if ($file!= "." && $file!= ".." ) {
if(!$files) $files="$file";
else $files="$file\n$files";
}
}
closedir($handle);
}
$arr=explode("\n",$files);
for($i=0;$i<count($arr);$i++){
echo "<br>$arr[$i]";
}
return $arr;
}
 
//cancella recursivamente tutti i files e cartelle di una directory
function recursive_remove_directory($directory, $empty=FALSE)
{
        if(substr($directory,-1) == '/')
        {
                $directory = substr($directory,0,-1);
        }
        if(!file_exists($directory) || !is_dir($directory))
        {
                return FALSE;
        }elseif(is_readable($directory))
        {
                $handle = opendir($directory);
                while (FALSE !== ($item = readdir($handle)))
                {
                        if($item != '.' && $item != '..')
                        {
                                $path = $directory.'/'.$item;
                                if(is_dir($path))
                                {
                                        recursive_remove_directory($path);
                                }else{
                                        unlink($path);
                                }
                        }
                }
                closedir($handle);
                if($empty == FALSE)
                {
                        if(!rmdir($directory))
                        {
                                return FALSE;
                        }
                }
        }
        return TRUE;
}
?>
 

Nel prossimo articolo il continuo.


Correlati

Leave a reply