[英]php - listing folders and files in a directory
嗨,我正在使用以下功能列出目录中的所有文件和文件夹。
<?php
function listFolderFiles($dir){
$ffs = scandir($dir);
foreach($ffs as $ff){
echo $ff . "<br/>";
}
}
?>
但是问题似乎是我正在获取目录中的所有文件夹,但是我也正在获取.
还有一个..
类似于下面的内容。
.
..
direc
img
music
New Text Document.txt
我正在使用以下功能,如: listFolderFiles('MyFolder');
我想要做的是获取所有文件夹和文件,但不获取.
和..
,我做错了什么,我怎么能得到我想要的。 谢谢!
摆脱scandir()
在Linux环境中出现的问题的简单方法:
<?php
$ffs = array_diff(scandir($dir), array('..', '.'));
?>
您可以非常容易地使用glob,它将文件名放入数组中:
print_r(glob("*.*"));
例:
// directory name
$directory = "/";
// get in directory
$files = glob($directory . "*");
$d = 0; // init dir array count
$f = 0; // init file array count
// directories and files
foreach($files as $file) {
if(is_dir($file)) {
array($l['directory'][$d] = $file);
$d++;
} else {
array($l['file'][$f] = $file);
$f++;
}
}
print_r($l);
注意 : scandir
还将拾取诸如.htaccess
隐藏文件。这就是为什么应该考虑使用glob方法的原因,除非您当然想要显示它们。
这应该做!
<?php
function listFolderFiles($dir){
$ffs = scandir($dir);
foreach($ffs as &$ff){
if ($ff != '.' && $ff != '..') {
echo $ff . "<br/>";
}
}
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.