首页 >后端开发 >php教程 >为什么我的 PHP 目录列表返回'1”而不是文件名?

为什么我的 PHP 目录列表返回'1”而不是文件名?

Susan Sarandon
Susan Sarandon原创
2024-12-05 06:39:15630浏览

Why Does My PHP Directory Listing Return

在 PHP 中从目录检索文件名

在 PHP 中,获取目录中的文件名可能是一项简单的任务。但是,您可能会遇到一个问题,即您提供的代码返回“1”而不是文件名。

让我们深入研究一下代码:

if (is_dir($log_directory)) {
    if ($handle = opendir($log_directory)) {
        while($file = readdir($handle) !== FALSE) {
            $results_array[] = $file;
        }
        closedir($handle);
    }
}

在此代码中,您正在尝试使用 opendir() 和 readdir() 从目录中读取文件。虽然这种方法在很多情况下都有效,但它可能并不总是正确显示文件名。

解决方案:利用 glob() 进行文件检索

而不是使用 opendir( ) 和 readdir(),请考虑利用 glob() 函数。它提供了一种更有效的方法来检索目录中的文件列表:

foreach(glob($log_directory.'/*.*') as $file) {
    ...
}

在此代码中,glob() 将在 $log_directory 中搜索具有任何文件扩展名 (*.*) 的所有文件。它返回一个包含找到的文件的完整路径的数组。

通过迭代从 glob() 获得的数组,您可以访问每个文件的完整路径,包括其名称。此方法消除了获取“1”作为文件名的问题,为您提供目录中的实际文件名。

以上是为什么我的 PHP 目录列表返回'1”而不是文件名?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn