如何在PHP中获取最后创建的目录?

时间:2017-11-28 16:08:06

标签: php cpanel

动态地我在一个文件夹中创建子目录,我需要以sting格式获取最后创建的目录,我已经尝试了很多方法,但未能得到它。我试过的是,

$path = "/path/to/my/dir";
$latest_ctime = 0;
$latest_filename = '';
$d = dir($path);
while (false !== ($entry = $d->read())) {
$filepath = "{$path}/{$entry}";
if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
 }
}

但它仅适用于文件。 提前致谢。

2 个答案:

答案 0 :(得分:0)

作为评论开始 - 但有这么多!

  

但它仅适用于文件

is_file更改为is_dir

  

和$ path是完整网址

上面的

$ path不是URL,它是一个路径。 is_dir / is_file / filectime不适用于URL

此外,您已将此标记为cpanel,这将是关闭此主题的原因,但它与编码问题无关。 OTOH确实暗示这不是MSWindows平台。在Unix和Linux上,filectime()实际上返回filemtime。因此,它显示的信息无法准确反映创建时间。

答案 1 :(得分:0)

尝试这样的事情:

$path = "/path/to/my/dir";
$latest_mtime = 0;
$latest_filename = '';
if ($handle = opendir($path)) {
    $blacklist = array('.', '..');
    while (false !== ($file = readdir($handle))) {
        if (!in_array($file, $blacklist)) {
            if (is_dir($file) && filemtime($file) > $latest_mtime) {
                $latest_mtime = filemtime($file);
                $latest_filename = $file;
            }
        }
    }
    closedir($handle);
}

另外, 你可以改变黑名单的条件:

if (!in_array($file, $blacklist) && substr($file, 0, 1) != ".") {

排除隐藏目录(在unix-like sistems中)。