function _do_walk_dir($dir, $separator, $function_def, &$return_params, $params) { if(is_dir($dir)) { $handle = opendir($dir); while(($file = readdir($handle)) !== false) { if (($file != '.') && ($file != '..')) { call_user_func_array($function_def, array('dir' => $dir, 'file' => $file, 'params' => $params, 'return_params' => &$return_params)); if (is_dir($dir . $separator . $file)) fs :: _do_walk_dir($dir . $separator . $file, $separator, $function_def, $return_params, $params); } } closedir($handle); } }
function _do_walk_dir($item, $separator, $function_def, &$return_params, $params, $include_first, $level=0) { if($level > 0 || ($level == 0 && $include_first)) call_user_func_array($function_def, array('dir' => dirname($item), 'file' => basename($item), 'path' => $item, 'params' => $params, 'return_params' => &$return_params)); if(!is_dir($item)) return; $handle = opendir($item); while(($file = readdir($handle)) !== false) { if (($file == '.') || ($file == '..')) continue; fs :: _do_walk_dir($item . $separator . $file, $separator, $function_def, $return_params, $params, $level + 1); } closedir($handle); }