function test_chop() { $this->assertEqual(dir :: chop('test'), 'test'); $this->assertEqual(dir :: chop('test/'), 'test'); }
function find_subitems($dir, $types = 'dfl', $exclude_regex = '', $add_path = true, $include_hidden = false) { $dir = dir::clean_path($dir); $dir = dir::chop($dir); $items = array(); $separator = dir::separator(); if ($handle = opendir($dir)) { while (($element = readdir($handle)) !== false) { if ($element == '.' || $element == '..') { continue; } if (!$include_hidden && $element[0] == '.') { continue; } if ($exclude_regex && preg_match($exclude_regex, $element)) { continue; } if (is_dir($dir . $separator . $element) && strpos($types, 'd') === false) { continue; } if (is_link($dir . $separator . $element) && strpos($types, 'l') === false) { continue; } if (is_file($dir . $separator . $element) && strpos($types, 'f') === false) { continue; } if ($add_path) { if (is_string($add_path)) { $items[] = $add_path . $separator . $element; } else { $items[] = $dir . $separator . $element; } } else { $items[] = $element; } } closedir($handle); } return $items; }