note 99113 added to function.opendir

From: Date: Wed, 28 Jul 2010 14:36:00 +0000
Subject: note 99113 added to function.opendir
Groups: php.notes 
Request: Send a blank email to php-notes+get-171187@lists.php.net to get a copy of this message
To extend the examples already given into something more flexible and complete. -c! <?php /** * directory_list * return an array containing optionally all files, only directiories or only files at a file system path * @author cgray The Metamedia Corporation www.metamedia.us * * @param $base_path string either absolute or relative path * @param $filter_dir boolean Filter directories from result (ignored except in last directory if $recursive is true) * @param $filter_files boolean Filter files from result * @param $exclude string Pipe delimited string of files to always ignore * @param $recursive boolean Descend directory to the bottom? * @return $result_list array Nested array or false * @access public * @license GPL v3 */ function directory_list($directory_base_path, $filter_dir = false, $filter_files = false, $exclude = ".|..|.DS_Store|.svn", $recursive = true){ $directory_base_path = rtrim($directory_base_path, "/") . "/"; if (!is_dir($directory_base_path)){ error_log(__FUNCTION__ . "File at: $directory_base_path is not a directory."); return false; } $result_list = array(); $exclude_array = explode("|", $exclude); if (!$folder_handle = opendir($directory_base_path)) { error_log(__FUNCTION__ . "Could not open directory at: $directory_base_path"); return false; }else{ while(false !== ($filename = readdir($folder_handle))) { if(!in_array($filename, $exclude_array)) { if(is_dir($directory_base_path . $filename . "/")) { if($recursive && strcmp($filename, ".")!=0 && strcmp($filename, "..")!=0 ){ // prevent infinite recursion error_log($directory_base_path . $filename . "/"); $result_list[$filename] = directory_list("$directory_base_path$filename/", $filter_dir, $filter_files, $exclude, $recursive); }elseif(!$filter_dir){ $result_list[] = $filename; } }elseif(!$filter_files){ $result_list[] = $filename; } } } closedir($folder_handle); return $result_list; } } ?> ---- Server IP: 72.55.140.6 Probable Submitter: 173.162.17.233 ---- Manual Page -- http://www.php.net/manual/en/function.opendir.php Edit -- https://master.php.net/note/edit/99113 Del: integrated -- https://master.php.net/note/delete/99113/integrated Del: useless -- https://master.php.net/note/delete/99113/useless Del: bad code -- https://master.php.net/note/delete/99113/bad+code Del: spam -- https://master.php.net/note/delete/99113/spam Del: non-english -- https://master.php.net/note/delete/99113/non-english Del: in docs -- https://master.php.net/note/delete/99113/in+docs Del: other reasons-- https://master.php.net/note/delete/99113 Reject -- https://master.php.net/note/reject/99113 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#171187) next »