Codeigniter列表仅非递归文件

时间:2017-11-14 23:36:21

标签: php codeigniter

我希望列出特定位置的文件名,而不包含可能包含的子目录和文件的名称。

我已经成功使用了CI的directory_map功能,但必须做一个小的解决方法,以不太方便的方式摆脱文件夹名称:

$files = directory_map('src/img/example/', 1);

foreach($files as $i => $file) {
    if(strpos($file, '\\') !== false) {
        unset($files[$i]);
    }
}

我确信必须有一种更容易和更好的解决方案,但没有找到它的运气

2 个答案:

答案 0 :(得分:1)

您可以使用scandir()

在单行中获取一系列文件名

http://php.net/manual/en/function.scandir.php

这是一个执行array_diff()以删除“。”的示例。和“..”目录。

 $files = array_diff(scandir('src/img/example'), array('..', '.'));

您也可以使用array_filter()

$files = array_filter(scandir('src/img/example'), function($item) {
  return !is_dir('directory/' . $item);
});

答案 1 :(得分:0)

可能的选择是使用DirectoryIterator

$arrFiles = [];

foreach (new DirectoryIterator('src/img/example/') as $objFile) 
{
    if($objFile->isFile()) $arrFiles[] = $objFile->getFilename();
}