我正在收集给定文件夹中的文件列表,其中可能有文件和文件夹。
我可以在需要时手动跳过文件夹,但是如何自动跳过所有文件夹并仅存储数组中的文件?
$moduleArray = array_diff(scandir('module/', 1), array('..', '.', 'admin'));
好吧,我得到了这个......但是在使用scandir
进行搜索时有什么办法吗?
foreach($moduleArray as $module) {
$end = explode(".", $module);
if(end($end) == "php") {
$name = substr($module, 0, -8);
echo " <a href=\"index.php?page=$name\"> $name </a><br />";
}
}
答案 0 :(得分:2)
或者,您也可以使用SPL DirectoryIterator
的 ->isDir()
:
$moduleArray = array();
foreach (new DirectoryIterator('module/') as $file) {
if($file->isDir()) continue;
$moduleArray[] = $file->getPathname(); // or getFilename()
}
答案 1 :(得分:1)
您可以搜索数组并删除文件夹; 这是我所知道的最佳方式: - )
for($i=0;$i<count($moduleArray);$i++)
{
if(is_dir($moduleArray[$i])
{
//Skip It
}
}
答案 2 :(得分:1)
$moduleArray = array_diff(scandir('module/', 1), array('..', '.'));
$fileListArray = array();
foreach ($moduleArray as $module){
if (!is_dir($module)){
$fileListArray[] = $module;
}
}