Php Codeigniter仅以非递归方式列出文件

Php Codeigniter仅以非递归方式列出文件,php,codeigniter,Php,Codeigniter,我想列出一个特定位置的文件名,而不包括它们可能包含的子目录和文件名 我成功地使用了CI的directory_map函数,但不得不做一些小的变通,以不太整洁的方式去除文件夹名称: $files = directory_map('src/img/example/', 1); foreach($files as $i => $file) { if(strpos($file, '\\') !== false) { unset($files[$i]); } } 我

我想列出一个特定位置的文件名,而不包括它们可能包含的子目录和文件名

我成功地使用了CI的directory_map函数,但不得不做一些小的变通,以不太整洁的方式去除文件夹名称:

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

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

我相信一定会有一种更简单更好的解决方案,但我没找到它

您可以使用
scandir()

下面的示例使用数组_diff()删除“.”和“.”目录

 $files = array_diff(scandir('src/img/example'), array('..', '.'));
您还可以使用
array\u filter()


一个可能的选择是使用
directoryinterator

$arrFiles = [];

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

在我的例子中,get_filename和get_dir_file_info函数都返回子目录的名称
$arrFiles = [];

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