* @return array array of file names.
*/
function &ls($dir,$filter=false) {
- if (!is_dir ($dir)) {
- $out = array () ;
- return $out ;
- }
- exec('ls -c1 '.$dir,$out);
- if ($filter) {
- for ($i=0; $i<count($out); $i++) {
- if (util_is_valid_filename($out[$i]) && is_file($dir.'/'.$out[$i])) {
- $filtered[]=$out[$i];
+ $out = array();
+
+ if (is_dir($dir) && ($h = opendir($dir))) {
+ while (($f = readdir($h)) !== false) {
+ if ($f[0] == '.')
+ continue;
+ if ($filter) {
+ if (!util_is_valid_filename($f) ||
+ !is_file($dir . "/" . $f))
+ continue;
}
+ $out[] = $f;
}
- return $filtered;
- } else {
- return $out;
+ closedir($h);
}
+ return $out;
}
/**