Php 有没有一种简单的方法可以读取目录中的文件名并添加到数组中?

Php 有没有一种简单的方法可以读取目录中的文件名并添加到数组中?,php,arrays,directory,Php,Arrays,Directory,我有一个目录:Audio/,里面只有mp3文件。我想自动化创建这些文件链接的过程。有没有办法读取目录并将该目录中的文件名添加到数组中 如果我们能做一个关联数组,并且让键是文件名减去.mp3标记,那就更酷了 有什么想法吗 详细说明:我有几个Audio/文件夹,每个文件夹包含不同事件的MP3。正在从数据库中提取事件详细信息并填充表。这就是我复制代码的原因,因为现在在每个Audio/文件夹中,我必须为下载链接定义文件名,并为mp3播放器定义文件名 谢谢大家!!这将大大简化我的代码,因为现在我一遍又一遍

我有一个目录:
Audio/
,里面只有mp3文件。我想自动化创建这些文件链接的过程。有没有办法读取目录并将该目录中的文件名添加到数组中

如果我们能做一个关联数组,并且让键是文件名减去.mp3标记,那就更酷了

有什么想法吗

详细说明:我有几个
Audio/
文件夹,每个文件夹包含不同事件的MP3。正在从数据库中提取事件详细信息并填充表。这就是我复制代码的原因,因为现在在每个
Audio/
文件夹中,我必须为下载链接定义文件名,并为mp3播放器定义文件名


谢谢大家!!这将大大简化我的代码,因为现在我一遍又一遍地重复大量的代码

是:使用。如果您只需要文件名而不需要扩展名,请在从
scandir()
收到的数组中的每个元素上使用它,这应该能够满足您的需要:

// Read files
$files = scandir($dirName);
// Filter out non-files ('.' or '..')
$files = array_filter($files, 'is_file');
// Create associative array ('filename' => 'filename.mp3')
$files = array_combine(array_map('basename', $files), $files);

当然……我想这应该行

$files[] = array();
$dir = opendir("/path/to/Audio") or die("Unable to open folder");
    while ($file = readdir($dir)) {
        $cleanfile = basename($file);
        $files[$cleanfile] = $file;
    }
    closedir($dir);
我想这应该行得通…

SPL的方式是:

$files[] = array();
$dir = opendir("/path/to/Audio") or die("Unable to open folder");
    while ($file = readdir($dir)) {
        $cleanfile = basename($file);
        $files[$cleanfile] = $file;
    }
    closedir($dir);

这应该是可行的,如果您想从数组中排除任何文件,只需将它们添加到if语句中,对于文件扩展名和完整性也是如此:您还可以使用:

$files = array_filter(glob('/path/to/files/*'), 'is_file'); 
这将返回所有文件(但不是文件夹),您可以根据需要进行调整

要仅获取文件名(而不是具有完整路径的文件),只需添加:

$files = array_map('basename', $files);

我更喜欢这种方式!你错过了文件上的$on[]
$files = array_map('basename', $files);