ExpressionEngine® 3 User Guide

Legacy Documentation

You are using the documentation for version 3.5.17. Go here for the latest version or check here for your available upgrades to the latest version.

Directory Helper

The Directory Helper file contains functions that assist in working with directories. This helper is loaded using the following code:

ee()->load->helper('directory');

Available Functions

directory_map($source_dir[, $directory_depth = 0[, $hidden = FALSE]])
Parameters:
  • $source_dir (string) – Path to the source directory
  • $directory_depth (int) – Depth of directories to traverse (0 = fully recursive, 1 = current dir, etc)
  • $hidden (bool) – Whether to include hidden directories
Returns:

An array of files

Return type:

array

Examples:

$map = directory_map('./mydirectory/');

Note

Paths are almost always relative to your main index.php file.

Sub-folders contained within the directory will be mapped as well. If you wish to control the recursion depth, you can do so using the second parameter (integer). A depth of 1 will only map the top level directory:

$map = directory_map('./mydirectory/', 1);

By default, hidden files will not be included in the returned array. To override this behavior, you may set a third parameter to true (boolean):

$map = directory_map('./mydirectory/', FALSE, TRUE);

Each folder name will be an array index, while its contained files will be numerically indexed. Here is an example of a typical array:

Array (
        [libraries] => Array
                (
                        [0] => benchmark.html
                        [1] => config.html
                        ["database/"] => Array
                                (
                                        [0] => query_builder.html
                                        [1] => binds.html
                                        [2] => configuration.html
                                        [3] => connecting.html
                                        [4] => examples.html
                                        [5] => fields.html
                                        [6] => index.html
                                        [7] => queries.html
                                )
                        [2] => email.html
                        [3] => file_uploading.html
                        [4] => image_lib.html
                        [5] => input.html
                        [6] => language.html
                        [7] => loader.html
                        [8] => pagination.html
                        [9] => uri.html
                )