|  | <?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 ) ; | 
|  | } | 
|  | ?> |