在Codeigniter/PHP中列出目录中的文件

3
我正在尝试按字母顺序列出目录中的所有文件。 就大部分而言,我所拥有的已经可以工作了,但是列表底部仍然有一些奇怪的随机文件会混在其中。
有人能帮忙吗?
$files = directory_map('downloads/human_resources');

asort($files);

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

1
你有什么输出?你期望什么? - Emz
1个回答

12

您可以使用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
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接