| <?php |
| /* |
| * Search Directory Function |
| * |
| * @$path : path to browse |
| * @$maxdepth : how deep to browse (-1=unlimited) |
| * @$mode : "FULL"|"DIRS"|"FILES" |
| * @$d : must not be defined |
| */ |
| function searchdir ( $path , $maxdepth = -1 , $mode = "FULL" , $d = 0 ) |
| { |
| if ( substr ( $path , strlen ( $path ) - 1 ) != '/' ) { $path .= '/' ; } |
| $dirlist = array () ; |
| if ( $mode != "FILES" ) { $dirlist[] = $path ; } |
| if ( $handle = @opendir ( $path ) ) |
| { |
| while ( false !== ( $file = readdir ( $handle ) ) ) |
| { |
| if ( $file != '.' && $file != '..' ) |
| { |
| $file = $path . $file ; |
| if ( ! is_dir ( $file ) ) { if ( $mode != "DIRS" ) { $dirlist[] = $file ; } } |
| elseif ( $d >=0 && ($d < $maxdepth || $maxdepth < 0) ) |
| { |
| $result = searchdir ( $file . '/' , $maxdepth , $mode , $d + 1 ) ; |
| $dirlist = array_merge ( $dirlist , $result ) ; |
| } |
| } |
| } |
| closedir ( $handle ) ; |
| } else { |
| return false; //Directory don't exist; |
| } |
| if ( $d == 0 ) { natcasesort ( $dirlist ) ; } |
| return ( $dirlist ) ; |
| } |
| ?> |