예제 #1
0
 function test_chop()
 {
 	$this->assertEqual(dir :: chop('test'), 'test');
 	$this->assertEqual(dir :: chop('test/'), 'test');
 }
예제 #2
0
 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;
 }