我有两个问题,如题哦。
1、判断该目录下是否有文件夹?
2、如何获取目录中最后一个文件夹?最后不用遍历的那种。也不用scandir的哪种。

解决方案 »

  1.   

    原来是这样啊。连操作系统都要去遍历啊。
    PHP中有没有快捷的方法直接取该目录下最一个文件夹的名字和有没有文件夹的BOOLEAN值呢?
      

  2.   

    执行个shell命令就搞定了,前提你环境允许执行命令
      

  3.   

    如果你认为这不算遍历,那就可以
    不过也不应该算,又不是我的代码实现的遍历1、按目录名排序的最后一个目录
    $ar = glob('*', GLOB_ONLYDIR);
    echo end($ar);2、按创建时间的最后一个目录
    $ar = glob('*', GLOB_ONLYDIR);
    $t = array_map('filectime', $ar);
    array_multisort($t, $ar);
    echo end($ar);
      

  4.   


    /****************************
     * 获取目录下的所有文件
     * [$dir] 文件夹路径
     ****************************/
    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 = $this->deepScanDir($subFile);
    $dirArr = array_merge($dirArr, $arr['dir']);
    $fileArr = array_merge($fileArr, $arr['file']);
    }
    }
    closedir($dirHandle);
    }
    return array (
    'dir' => $dirArr,
    'file' => $fileArr
    );
    }