note 77691 deleted from function.opendir by cmb

From: Date: Tue, 11 Jun 2019 06:36:18 +0000
Subject: note 77691 deleted from function.opendir by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-211212@lists.php.net to get a copy of this message
Note Submitter: arjan at wepwn dot nl ---- A simple function to count all the files and/or dirs inside a dir. With optional extention when counting files. Index of / Some text file.txt files/ num_files.phps test.php <?php function num_files($dir, $type, $ext="") { // type 1: files only // type 2: direcories only // type 3: files and directories added // type 4: files and directories separated with a space if (!isset($dir) OR empty($dir)) { echo '<b>Syntax error:</b> $dir value empty.'; exit; } $num_files = 0; $num_dirs = 0; switch($type) { case 1: // count only files, not dirs if ($dir = @opendir($dir)) { while (($file = readdir($dir)) !== false) { if(is_file($file) AND $file != "." AND $file != "..") { if (isset($ext) AND !empty($ext)) { $extension = end(explode(".", $file)); if ($ext == $extension) { $num_files++; } } else { $num_files++; } } } closedir($dir); $total = $num_files; } break; case 2: // count only dirs, not files if ($dir = @opendir($dir)) { while (($file = readdir($dir)) !== false) { if(is_dir($file) AND $file != "." AND $file != "..") { $num_dirs++; } } closedir($dir); $total = $num_dirs; } break; case 3: // count files PLUS dirs in once variable if ($dir = @opendir($dir)) { while (($file = readdir($dir)) !== false) { if(is_dir($file) OR is_dir($file)) { if ($file != "." AND $file != "..") { $num_files++; } } } closedir($dir); $total = $num_files; } break; case 4: // count files AND dirs separately if ($dir = @opendir($dir)) { while (($file = readdir($dir)) !== false) { if(is_file($file) AND $file != "." AND $file != "..") { $num_files++; } if(is_dir($file) AND $file != "." AND $file != "..") { $num_dirs++; } } closedir($dir); $total = $num_files." ".$num_dirs; } break; default: echo '<b>Syntax error:</b> $type value empty.'; break; } return $total; } echo num_files($_SERVER['DOCUMENT_ROOT'], 1, "php"). " file(s) met php extention<br /> "; echo num_files($_SERVER['DOCUMENT_ROOT'], 1). " file(s)<br />"; echo num_files($_SERVER['DOCUMENT_ROOT'], 2). " dir(s)<br />"; echo num_files($_SERVER['DOCUMENT_ROOT'], 3). " file(s) + dir(s)<br />"; $nummers = explode(" ", num_files($_SERVER['DOCUMENT_ROOT'], 4)); echo reset($nummers) ." file(s) en ". end($nummers) ." dir(s)"; ?> will output: 1 file(s) with php extention 3 file(s) 1 dir(s) 1 file(s) + dir(s) 3 file(s) en 1 dir(s)

« previous php.notes (#211212) next »