如何在php中获取上次创建的目录?

如何在php中获取上次创建的目录?,php,cpanel,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) &

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

一开始是评论,但是评论太多了

但它只适用于文件

is_文件
更改为
is_目录

$path是完整的url

上面的$path不是URL,而是路径。is_dir/is_file/filectime不适用于URL


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

尝试以下方法:

$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的系统中)。

和$path是我工作的完整url,因为它是另一个子域。我已经尝试过,但它不适用于is_dir(),所以如果我使用url,那么我如何才能得到它?另外,子域目录在我的主目录中,那么没有url我怎么能得到目录呢?你不能。HTTP不公开目录的元数据,它对于文件是可选的,并且可能用于传递与创建时不同的语义。带有FTP方案的URL略有不同。具有文件方案的url再次不同。抱歉,它是$file。我还在编辑答案。现在试试。另外,我不确定是filectime还是filemtime。两个都试一下,对你有用吗?在我的机器上,结果是我所期望的。是的,它工作了,但我改变了一些东西,然后它工作了。