繁体   English   中英

php使用scandir获取文件夹内容

[英]php using scandir to get folder contents

我当前正在使用scandir获取上载文件夹的内容。 这是我指定目录的代码:

$dir    = /var/www/vhosts/mywebsite.com/httpdocs/admin/newsletters/1234-16-10-2013/
$files = scandir($dir);

然后,我遍历如下结果:

foreach($files as $file) {

  echo '<option value="'.$file.'">'.$file.'</option>';    

}

上面的工作正常,并正确填充我的选择菜单。 但是由于某些原因,选择菜单中的选项如下所示:

<option value=".">.</option>
<option value="..">..</option>
<option selected="selected" value="header.jpg">header.jpg</option>
<option value="sale.jpg">sale.jpg</option>
<option value="show-now.jpg">show-now.jpg</option>

前两个选项包含句号。 第一个具有1,第二个具有2。

有人知道为什么是这样吗? 是因为目录的深度吗?

任何帮助将不胜感激!

那是因为系统条目. ..指向“当前目录”和“父目录”的指针。 如果您不想在输出中看到它们,则需要对其进行过滤。

您可能需要使用is_file() -then过滤条目. ..将被跳过,因为它们实际上是目录(指向它们的指针)

Scandir相对较慢。

        foreach (new DirectoryIterator($path) as $file)
        {
            if($file->isDot()) continue;

            if($file->isDir()))
            {
                print $file->getFilename() . '<br />';
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM