繁体   English   中英

使用scandir时跳过所有文件夹

[英]Skip all folders when using scandir

我正在收集给定文件夹中的文件列表,其中可能有文件和文件夹。

我可以根据需要手动跳过文件夹,但是如何自动跳过所有文件夹并仅将文件存储在阵列中?

$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 />";
        }
    }

另外,您也可以使用SPL DirectoryIterator->isDir()

$moduleArray = array();
foreach (new DirectoryIterator('module/') as $file) {
    if($file->isDir()) continue;
    $moduleArray[] = $file->getPathname(); // or getFilename()
}

您可以搜索数组并删除文件夹; 这是我所知道的最好方法。

 for($i=0;$i<count($moduleArray);$i++)
 {
   if(is_dir($moduleArray[$i])
   {
     //Skip It
   }
 }
$moduleArray = array_diff(scandir('module/', 1), array('..', '.'));
$fileListArray = array();
foreach ($moduleArray as $module){
   if (!is_dir($module)){
      $fileListArray[] = $module;  
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM