<?php

/*************************************************

dirsizer.php - a simple utility to list the total sizes of files in a folder, and the number of lines in .htm and .php files

home page: www.samscripts.com/scripts/dirsizer
support: support.samscripts.com/index.php

licence: freeware 
author: Sam Yapp
date: 8th September 2002

documentation and examples at www.samscripts.com

usage: 

include("dirsizer.php");

$d = new dirsizer("path/to/scan");

*************************************************/


class dirsizer{

    function 
dirsizer($path){
        
$this->dirs = array();
        
$this->totalsize 0;
        
$this->totallines 0;
        
$this->getdirectoryinfo($path);
        echo 
"<pre>";
        
print_r($this->dirs);
        echo 
"</pre>";
        echo 
"Total Lines: ".$this->totallines."<br>Total Size: ".$this->totalsize."<br><br>";
    }

    function 
getdirectoryinfo($path){
        
$this->dirs[$path]["files"] = 0;
        
$this->dirs[$path]["folders"] = 0;
        
$this->dirs[$path]["filesizes"] = 0;
        
$this->dirs[$path]["totallines"] = 0;
        
$d dir($path);
        while( 
false !== ($entry $d->read())){
            if( 
$entry != "." && $entry != ".." ){
                
$entrypath $path."/".$entry;
                if( 
is_file($entrypath) ){
                    if( 
preg_match("~\.(php|htm)$~i"$entry)){
                    
$this->dirs[$path]["files"]++;
                    
$this->dirs[$path]["filesizes"] += filesize($entrypath);
                    
$f file($entrypath);
                    
$this->dirs[$path]["totallines"] += count($f);
                    }
                }else{
                    
$this->dirs[$path]["folders"]++;
                    
$this->getdirectoryinfo($entrypath);
                }
            }
        }
        
$this->totalsize += $this->dirs[$path]["filesizes"];
        
$this->totallines += $this->dirs[$path]["totallines"];
        
$d->close();
    }

}


?>