我正在尝试使用PHP获取目录中的所有文件和文件夹。
目前,我只能使用我的代码获取文件夹。
这是我当前的代码:
<?php
$folders = "";
if(isset($_GET['dir'])) {
$directory = $_GET['dir'];
$path = 'user_doc/'.$directory.''; // '.' for current
foreach (new DirectoryIterator($path) as $file) {
if ($file->isDot()) continue;
if ($file->isDir()) {
//print $file->getFilename() . '<br />';
//$folders .="<option>".$file->getFilename()."</option>";
$folders .="<div style=' width:90%; padding:14px; border-bottom:solid 1px #CCC;'><i style='font-size:18px;' class='fa fa-folder-open'></i>
<a class='defaults' href='folder.php?dir=".$file->getFilename()."'>".$file->getFilename()."</a></div>";
}
}
}
?>
上面的代码由于某种原因忽略了文件,并且只显示文件夹。
有人能就这个问题提出建议吗?
提前谢谢。
这应该适用于您:
(这里我只使用glob()
来获取所有文件和目录)
<?php
if(isset($_GET['dir'])) {
$directory = $_GET['dir'];
$path = "user_doc/" . $directory;
$folders = "";
$files = glob($path . "/*");
foreach($files as $file)
$folders .= "<div style=' width:90%; padding:14px; border-bottom:solid 1px #CCC;'><i style='font-size:18px;' class='fa fa-folder-open'></i> <a class='defaults' href='folder.php?dir=" . $file . "'>" . $file . "</a></div>";
}
?>
你的代码没有按你想要的那样工作,因为这个:
if ($file->isDir()) {
如果是目录
大声阅读并收听:
if ($file->isDir()) {
检查Shef给出的答案,以列出列出的所有文件夹和文件
function listFolderFiles($dir){
$ffs = scandir($dir);
echo '<ol>';
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
echo '<li>'.$ff;
if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
echo '</li>';
}
}
echo '</ol>';
}
listFolderFiles('Main Dir');