diff options
author | Renato Botelho <garga@FreeBSD.org> | 2013-01-28 11:28:35 -0200 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2013-01-28 11:28:35 -0200 |
commit | a2219caf9ca5a87809a35707805660d68adfd484 (patch) | |
tree | fa8785b70f5763d3512af7b04c97cb8118d9b79d /etc/inc | |
parent | c848008b51f3659fe2a9eb147f047ae62c3e9f7d (diff) | |
download | pfsense-a2219caf9ca5a87809a35707805660d68adfd484.zip pfsense-a2219caf9ca5a87809a35707805660d68adfd484.tar.gz |
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
Diffstat (limited to 'etc/inc')
-rw-r--r-- | etc/inc/util.inc | 15 |
1 files changed, 8 insertions, 7 deletions
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); |