列出目录中的所有文件夹(PHP)[重复]

问题描述 投票:-1回答:3

这个问题在这里已有答案:

如何让我的代码只显示文件夹的链接而不显示目录中的文件?

$d = dir(".");
echo "<ul>";
while(false !== ($entry = $d->read())) {
    echo "<li><a href='{$entry}'>{$entry}</a></li>";
}
echo "</ul>";
$d->close();
php directory scandir
3个回答
2
投票
$d = dir(".");

echo "<ul>";

while (false !== ($entry = $d->read()))
{
    if (is_dir($entry) && ($entry != '.') && ($entry != '..'))
        echo "<li><a href='{$entry}'>{$entry}</a></li>";
}

echo "</ul>";

$d->close();

1
投票

您应该能够通过调用is_dir来包装当前代码:

while(false !== ($entry = $d->read())) {
    if (is_dir($entry)) {
        echo "<li><a href='{$entry}'>{$entry}</a></li>";
    }
}

如果要删除“点”目录(...),请使用以下命令:

if (is_dir($entry) && !in_array($entry, ['.', '..'])) {
...

0
投票

只需检查$ entry是否是目录:

$d = dir(".");
echo "<ul>";
while(false !== ($entry = $d->read())) {
if(is_dir($entry))
    echo "<li><a href='{$entry}'>{$entry}</a></li>";
}
echo "</ul>";
$d->close();
© www.soinside.com 2019 - 2024. All rights reserved.