Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- define('SHOW_DETAILS', true);
- class Folder {
- var $name;
- var $path;
- var $folders;
- var $files;
- var $exclude_extensions;
- var $exclude_files;
- var $exclude_folders;
- function Folder($path) {
- $this -> path = $path;
- $this -> name = array_pop( array_filter( explode(DIRECTORY_SEPARATOR, $path) ) );
- $this -> folders = array();
- $this -> files = array();
- $this -> exclude_extensions = array('gif', 'jpg', 'jpeg', 'png', 'tft', 'bmp', 'rest-of-the-file-extensions-to-exclude');
- $this -> exclude_files = array('count_lines.php', 'rest-of-the-files-to-exclude');
- $this -> exclude_folders = array('_private', '_vti_bin', '_vti_cnf', '_vti_log', '_vti_pvt', '_vti_txt', 'rest-of-the-folders-to-exclude');
- }
- function count_lines() {
- if( defined('SHOW_DETAILS') ) print "";
- $total_lines = 0;
- $this -> get_contents();
- foreach($this -> files as $file) {
- if( in_array($file -> ext, $this -> exclude_extensions) || in_array($file -> name, $this -> exclude_files) ) {
- if( defined('SHOW_DETAILS') ) print "#---Skipping File: {$file -> name};\n";
- continue;
- }
- $total_lines += $file -> get_num_lines();
- }
- foreach($this -> folders as $folder) {
- if( in_array($folder -> name, $this -> exclude_folders) ) {
- if( defined('SHOW_DETAILS') ) print "#Skipping Folder: {$folder -> name};\n";
- continue;
- }
- $total_lines += $folder -> count_lines();
- }
- if( defined('SHOW_DETAILS') ) print "";
- return $total_lines;
- }
- function get_contents() {
- $contents = $this -> _get_contents();
- foreach($contents as $key => $value) {
- if( $value['type'] == 'Folder' ) {
- $this -> folders[] = new Folder($value['item']);
- } else {
- $this -> files[] = new File ($value['item']);
- }
- }
- }
- function _get_contents() {
- $folder = $this -> path;
- if( !is_dir($folder) ) {
- return array();
- }
- $return_array = array();
- $count = 0;
- if( $dh = opendir($folder) ) {
- while( ($file = readdir($dh)) !== false ) {
- if( $file == '.' || $file == '..' ) continue;
- $return_array[$count]['item'] = $folder .$file .(is_dir($folder .$file) ? DIRECTORY_SEPARATOR : '');
- $return_array[$count]['type'] = is_dir($folder .$file) ? 'Folder' : 'File';
- $count++;
- }
- closedir($dh);
- }
- return $return_array;
- }
- } // Class
- class File {
- var $name;
- var $path;
- var $ext;
- function File($path) {
- $this -> path = $path;
- $this -> name = basename($path);
- $this -> ext = array_pop( explode('.', $this -> name) );
- }
- function get_num_lines() {
- $count_lines = count(file($this -> path));
- if( defined('SHOW_DETAILS') ) print "";
- return $count_lines;
- }
- } // Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement