动态地我在一个文件夹中创建子目录,我需要以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;
}
}
但它仅适用于文件。 提前致谢。
答案 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中)。