我正在尝试使用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>";
}
}
}
?>
上面的代码,由于某种原因忽略了文件,它只显示文件夹。
有人可以就此问题提出建议吗?
提前致谢。
答案 0 :(得分:3)
这应该适合你:
(这里我只使用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语句答案 1 :(得分:2)
大声朗读并听取:
if ($file->isDir()) {
答案 2 :(得分:0)
检查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');