Пример #1
0
function deepScanDir($dir)
{
    $dirArr = array();
    $dir = rtrim($dir, '//');
    if (is_dir($dir)) {
        $dirHandle = opendir($dir);
        while (false !== ($fileName = readdir($dirHandle))) {
            $subFile = $dir . DIRECTORY_SEPARATOR . $fileName;
            if (is_dir($subFile) && str_replace('.', '', $fileName) != '') {
                if (strpos($subFile, 'MAP') > 0 || strpos($subFile, 'map') > 0) {
                    continue;
                }
                if (strpos($subFile, 'WF') > 0 || strpos($subFile, 'wf') > 0 || strpos($subFile, 'MAP') > 0 || strpos($subFile, 'map') > 0) {
                    //echo $subFile;
                    $wfArr[] = $subFile;
                    continue;
                }
                $dirArr[] = $subFile;
                $arr = deepScanDir($subFile);
                $dirArr = array_merge($dirArr, $arr['dir']);
            }
        }
        closedir($dirHandle);
    }
    return array('dir' => $dirArr);
}
Пример #2
0
 /**
  * 取得输入目录所包含的所有目录和文件
  * 以关联数组形式返回
  */
 public static function deepScanDir($dir)
 {
     $fileArr = array();
     $dirArr = array();
     $dir = rtrim($dir, '//');
     if (is_dir($dir)) {
         $dirHandle = opendir($dir);
         while (false !== ($fileName = readdir($dirHandle))) {
             $subFile = $dir . DIRECTORY_SEPARATOR . $fileName;
             if (is_file($subFile)) {
                 $fileArr[] = $subFile;
             } elseif (is_dir($subFile) && str_replace('.', '', $fileName) != '') {
                 $dirArr[] = $subFile;
                 $arr = deepScanDir($subFile);
                 $dirArr = array_merge($dirArr, $arr['dir']);
                 $fileArr = array_merge($fileArr, $arr['file']);
             }
         }
         closedir($dirHandle);
     }
     return array('dir' => $dirArr, 'file' => $fileArr);
 }