From a2219caf9ca5a87809a35707805660d68adfd484 Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Mon, 28 Jan 2013 11:28:35 -0200 Subject: Add option filter to return_dir_as_array() - Add a 2nd parameter, default empty, that allows to pass a regex to filter files it'll return - While I'm here, simplify code removinf $canadd var --- etc/inc/util.inc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'etc/inc/util.inc') diff --git a/etc/inc/util.inc b/etc/inc/util.inc index 0cc2692..988ddff 100644 --- a/etc/inc/util.inc +++ b/etc/inc/util.inc @@ -1331,23 +1331,24 @@ function update_filter_reload_status($text) { file_put_contents("{$g['varrun_path']}/filter_reload_status", $text); } -/****f* util/return_dir_as_array +/****** util/return_dir_as_array * NAME * return_dir_as_array - Return a directory's contents as an array. * INPUTS - * $dir - string containing the path to the desired directory. + * $dir - string containing the path to the desired directory. + * $filter_regex - string containing a regular expression to filter file names. Default empty. * RESULT * $dir_array - array containing the directory's contents. This array will be empty if the path specified is invalid. ******/ -function return_dir_as_array($dir) { +function return_dir_as_array($dir, $filter_regex = '') { $dir_array = array(); if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { - $canadd = 0; - if($file == ".") $canadd = 1; - if($file == "..") $canadd = 1; - if($canadd == 0) + if (($file == ".") || ($file == "..")) + continue; + + if (empty($filter_regex) || preg_match($filter_regex, $file)) array_push($dir_array, $file); } closedir($dh); -- cgit v1.1