首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHP获取目录中所有文件的名称

使用PHP获取目录中所有文件的名称
EN

Stack Overflow用户
提问于 2010-05-28 00:31:10
回答 14查看 146.9K关注 0票数 94

由于某些原因,我一直使用下面的代码为文件名获取'1‘:

代码语言:javascript
复制
if (is_dir($log_directory))
{
    if ($handle = opendir($log_directory))
    {
        while($file = readdir($handle) !== FALSE)
        {
            $results_array[] = $file;
        }
        closedir($handle);
    }
}

当我回显$results_array中的每个元素时,我得到了一堆‘1’,而不是文件的名称。我如何获取文件的名称?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2010-05-28 00:35:01

不要担心打开/readdir,而是使用glob

代码语言:javascript
复制
foreach(glob($log_directory.'/*.*') as $file) {
    ...
}
票数 183
EN

Stack Overflow用户

发布于 2014-09-23 14:36:48

SPL样式:

代码语言:javascript
复制
foreach (new DirectoryIterator(__DIR__) as $file) {
  if ($file->isFile()) {
      print $file->getFilename() . "\n";
  }
}

DirectoryIteratorSplFileInfo类中查看可以使用的可用方法列表。

票数 56
EN

Stack Overflow用户

发布于 2010-05-28 00:47:47

您需要用括号将$file = readdir($handle)括起来。

这就是了:

代码语言:javascript
复制
$log_directory = 'your_dir_name_here';

$results_array = array();

if (is_dir($log_directory))
{
        if ($handle = opendir($log_directory))
        {
                //Notice the parentheses I added:
                while(($file = readdir($handle)) !== FALSE)
                {
                        $results_array[] = $file;
                }
                closedir($handle);
        }
}

//Output findings
foreach($results_array as $value)
{
    echo $value . '<br />';
}
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2922954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档