列出codeigniter / php目录中的文件

时间:2015-10-13 07:51:07

标签: php codeigniter

我试图按字母顺序列出目录中的所有文件。在大多数情况下,我的工作是有效的,但是在列表的底部有一些奇怪的随机的混淆。

有人可以帮忙吗?

$files = directory_map('downloads/human_resources');

asort($files);

foreach($files as $file){
    if(is_string($file)){
        echo $file[1];
    }
}

1 个答案:

答案 0 :(得分:7)

您可以使用codeigniter的目录助手。要加载助手,请使用$this->load->helper('directory');

并使用directory_map()函数读取第一个参数中指定的目录路径,并构建它的数组表示及其包含的所有文件。例如:

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

注意:路径几乎总是相对于主index.php文件。

目录中包含的子文件夹也将被映射。如果要控制递归深度,可以使用第二个参数(整数)来控制递归深度。深度为1将仅映射顶级目录:

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

默认情况下,隐藏文件不会包含在返回的数组中。要覆盖此行为,您可以将第三个参数设置为true(布尔值):

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

每个文件夹名称都是一个数组索引,而其包含的文件将以数字方式编制索引。以下是典型数组的示例:

Array
(
   [libraries] => Array
   (
       [0] => benchmark.html
       [1] => config.html
       [database] => Array
       (
             [0] => active_record.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
)