80 lines
2 KiB
PHP
80 lines
2 KiB
PHP
|
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||
|
/**
|
||
|
* CodeIgniter
|
||
|
*
|
||
|
* An open source application development framework for PHP 5.1.6 or newer
|
||
|
*
|
||
|
* @package CodeIgniter
|
||
|
* @author ExpressionEngine Dev Team
|
||
|
* @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
|
||
|
* @license http://codeigniter.com/user_guide/license.html
|
||
|
* @link http://codeigniter.com
|
||
|
* @since Version 1.0
|
||
|
* @filesource
|
||
|
*/
|
||
|
|
||
|
// ------------------------------------------------------------------------
|
||
|
|
||
|
/**
|
||
|
* CodeIgniter Directory Helpers
|
||
|
*
|
||
|
* @package CodeIgniter
|
||
|
* @subpackage Helpers
|
||
|
* @category Helpers
|
||
|
* @author ExpressionEngine Dev Team
|
||
|
* @link http://codeigniter.com/user_guide/helpers/directory_helper.html
|
||
|
*/
|
||
|
|
||
|
// ------------------------------------------------------------------------
|
||
|
|
||
|
/**
|
||
|
* Create a Directory Map
|
||
|
*
|
||
|
* Reads the specified directory and builds an array
|
||
|
* representation of it. Sub-folders contained with the
|
||
|
* directory will be mapped as well.
|
||
|
*
|
||
|
* @access public
|
||
|
* @param string path to source
|
||
|
* @param int depth of directories to traverse (0 = fully recursive, 1 = current dir, etc)
|
||
|
* @return array
|
||
|
*/
|
||
|
if ( ! function_exists('directory_map'))
|
||
|
{
|
||
|
function directory_map($source_dir, $directory_depth = 0, $hidden = FALSE)
|
||
|
{
|
||
|
if ($fp = @opendir($source_dir))
|
||
|
{
|
||
|
$filedata = array();
|
||
|
$new_depth = $directory_depth - 1;
|
||
|
$source_dir = rtrim($source_dir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR;
|
||
|
|
||
|
while (FALSE !== ($file = readdir($fp)))
|
||
|
{
|
||
|
// Remove '.', '..', and hidden files [optional]
|
||
|
if ( ! trim($file, '.') OR ($hidden == FALSE && $file[0] == '.'))
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (($directory_depth < 1 OR $new_depth > 0) && @is_dir($source_dir.$file))
|
||
|
{
|
||
|
$filedata[$file] = directory_map($source_dir.$file.DIRECTORY_SEPARATOR, $new_depth, $hidden);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$filedata[] = $file;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
closedir($fp);
|
||
|
return $filedata;
|
||
|
}
|
||
|
|
||
|
return FALSE;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/* End of file directory_helper.php */
|
||
|
/* Location: ./system/helpers/directory_helper.php */
|