php - 列出文件夹和子文件夹,但不列出文件
问题描述
我研究了但没有找到我的答案,你知道如何找到所有这样的文件夹和子文件夹,但不是文件吗?
<ul>
<li><a href="/Folder1">Folder 1</a></li>
<ul>
<li><a href="/Folder1/Subfolder1">Subfolder 1</a></li>
<li><a href="/Folder1/Subfolder2">Subfolder 2</a></li>
<li><a href="/Folder1/Subfolder3">Subfolder 3</a></li>
</ul>
<li><a href="/Folder2">Folder 2</a></li>
<ul>
<li><a href="/Folder2/Subfolder1">Subfolder 1</a></li>
<li><a href="/Folder2/Subfolder2">Subfolder 2</a></li>
</ul>
<li><a href="/Folder3">Folder 3</a></li>
</ul>
我在 stackoverflow 上找到了这段代码,但它显示了文件,我不知道如何为 a href 执行路径文件夹:
function listFolderFiles($dir){
$ffs = scandir($dir);
unset($ffs[array_search('.', $ffs, true)]);
unset($ffs[array_search('..', $ffs, true)]);
// prevent empty ordered elements
if (count($ffs) < 1)
return;
echo '<ol>';
foreach($ffs as $ff){
echo '<li>'.$ff;
if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
echo '</li>';
}
echo '</ol>';
}
listFolderFiles('/Applications/MAMP/htdocs/Test');
解决方案
只需检查文件是否为目录:
foreach($ffs as $ff){
if (!is_dir($ff)) {
continue;
}
echo '<li>'.$ff;
if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
echo '</li>';
}
推荐阅读
- azure - 在 Azure Function 中缓存公共 JWT 身份验证密钥
- vba - 谷歌,people api,我如何在群组中创建联系人
- firebase - 如何仅在functions.auth.user().onCreate完成后才能完成登录
- express - Joi 使用 when 条件验证对象数组
- spring - 如何从 POST 转发到 GET 处理程序
- ios - 使用苹果在权限消息中缺少应用名称登录
- bash - 将 Makefile 中命令的结果存储在变量中
- android-layout - 背景和文本颜色交互
- android-custom-view - 为什么自定义菜单图标没有响应
- html - Bootstrap CSS - 在较小的断点处浮动的行