如何使用php来检索特定文件夹中的所有文件名


How to use php to retrieve all the file name in a specific folder

比如说,在我的Web服务器中有一个名为upload_files的文件夹然后我的一个php页面应该获取该文件夹中的所有文件名我在谷歌上搜索过,但到目前为止,返回的文件名只是用户浏览的页面感谢

有很多方法可以检索文件夹内容,如globscandirDirectoryIteratorRecursiveDirectoryIterator,我个人建议您检查DirectoryTerator,因为它有很大的潜力。

使用scandir方法的示例

$dirname = getcwd();
$dir = scandir($dirname);
foreach($dir as $i => $filename)
{
    if($filename == '.' || $filename == '..')
        continue;
    var_dump($filename);
}

使用DirectoryIterator类的示例

$dirname = getcwd();
$dir = new DirectoryIterator($dirname);
foreach ($dir as $path => $splFileInfo)
{
    if ($splFileInfo->isDir())
        continue;
    // do what you have to do with your files
    //example: get filename
    var_dump($splFileInfo->getFilename());
}

以下是使用RecursiveDirectoryIterator类的不太常见的示例:

//use current working directory, can be changed to directory of your choice
$dirname = getcwd();
$splDirectoryIterator = new RecursiveDirectoryIterator($dirname);
$splIterator = new RecursiveIteratorIterator(
    $splDirectoryIterator, RecursiveIteratorIterator::SELF_FIRST
);
foreach ($splIterator as $path => $splFileInfo)
{
    if ($splFileInfo->isDir())
        continue;
    // do what you have to do with your files
    //example: get filename
    var_dump($splFileInfo->getFilename());
}

我同意Jon:

glob("upload_files/*")

返回一个文件名数组。

但是小心!当你让人们上传时,可能会发生不好的事情东西到你的网络服务器。构建保存上传脚本很难。

举个例子:你必须确保没有人可以上传一个php文件到您的上传文件夹。如果可以,他们可以然后通过在浏览器中输入适当的url来运行它。

请了解php&安全,然后再尝试!

下面将打印文件夹upload_files中的所有文件。

$files = glob("upload_files/*");
foreach ($files as $file)
    print $file;