]>
Commit | Line | Data |
---|---|---|
59c06b17 CS |
1 | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); |
2 | /** | |
3 | * CodeIgniter | |
4 | * | |
5 | * An open source application development framework for PHP 5.1.6 or newer | |
6 | * | |
7 | * @package CodeIgniter | |
8 | * @author ExpressionEngine Dev Team | |
9 | * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. | |
10 | * @license http://codeigniter.com/user_guide/license.html | |
11 | * @link http://codeigniter.com | |
12 | * @since Version 1.0 | |
13 | * @filesource | |
14 | */ | |
15 | ||
16 | // ------------------------------------------------------------------------ | |
17 | ||
18 | /** | |
19 | * CodeIgniter Directory Helpers | |
20 | * | |
21 | * @package CodeIgniter | |
22 | * @subpackage Helpers | |
23 | * @category Helpers | |
24 | * @author ExpressionEngine Dev Team | |
25 | * @link http://codeigniter.com/user_guide/helpers/directory_helper.html | |
26 | */ | |
27 | ||
28 | // ------------------------------------------------------------------------ | |
29 | ||
30 | /** | |
31 | * Create a Directory Map | |
32 | * | |
33 | * Reads the specified directory and builds an array | |
34 | * representation of it. Sub-folders contained with the | |
35 | * directory will be mapped as well. | |
36 | * | |
37 | * @access public | |
38 | * @param string path to source | |
39 | * @param int depth of directories to traverse (0 = fully recursive, 1 = current dir, etc) | |
40 | * @return array | |
41 | */ | |
42 | if ( ! function_exists('directory_map')) | |
43 | { | |
44 | function directory_map($source_dir, $directory_depth = 0, $hidden = FALSE) | |
45 | { | |
46 | if ($fp = @opendir($source_dir)) | |
47 | { | |
48 | $filedata = array(); | |
49 | $new_depth = $directory_depth - 1; | |
50 | $source_dir = rtrim($source_dir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; | |
51 | ||
52 | while (FALSE !== ($file = readdir($fp))) | |
53 | { | |
54 | // Remove '.', '..', and hidden files [optional] | |
55 | if ( ! trim($file, '.') OR ($hidden == FALSE && $file[0] == '.')) | |
56 | { | |
57 | continue; | |
58 | } | |
59 | ||
60 | if (($directory_depth < 1 OR $new_depth > 0) && @is_dir($source_dir.$file)) | |
61 | { | |
62 | $filedata[$file] = directory_map($source_dir.$file.DIRECTORY_SEPARATOR, $new_depth, $hidden); | |
63 | } | |
64 | else | |
65 | { | |
66 | $filedata[] = $file; | |
67 | } | |
68 | } | |
69 | ||
70 | closedir($fp); | |
71 | return $filedata; | |
72 | } | |
73 | ||
74 | return FALSE; | |
75 | } | |
76 | } | |
77 | ||
78 | ||
79 | /* End of file directory_helper.php */ | |
80 | /* Location: ./system/helpers/directory_helper.php */ |