PHP无法获取文件上次修改日期和文件大小

时间:2014-11-04 19:29:05

标签: php filemtime modified-date

我在从文件夹内部检索文件信息时遇到问题。

当然,我正在使用PHP。我有各种文件夹,都有各种文件类型。主要是.txt和.html文件。

下面的代码显示了我网页上的文件夹以及文件,但由于某种原因,我无法获得正确的文件日期或大小。文件日期当然是文件夹中的修改日期。通常会从其他位置复制和粘贴这些文件。我打算让批处理文件自动删除目录中的文件。

以下是我正在使用的代码:

 <?php
   function listFolderFiles($dir)
        {
            $ffs = scandir($dir);
            echo '<ul>';
            foreach($ffs as $ff)
            {
                if($ff != '.' && $ff != '..')
                {
                    echo '<li>';
                    if(is_dir($dir.'/'.$ff))
                    {
                        echo $ff;
                        listFolderFiles($dir.'/'.$ff);
                    } 
                    else 
                    {
                        echo "<a href='$dir/$ff'>$ff</a> - Last Updated: " . 
                        date('F d, Y h:i', filectime($ff)) . " - Size " . filesize($ff);
                        echo "<br />";
                    }
                    echo '</li>';
                }
            }
            echo '</ul>';
        }
    listFolderFiles('exportReports');
 ?>

正如您在代码中看到的,我使用了PHP函数filectime。我也使用过filemtime。函数filectime似乎返回当前日期,而filemtime返回日期为1969年12月31日。

文件位于正确的目录中。如果我能够在我的页面上显示文件,并且用户可以下载文件,那么为什么它不能检索修改日期?我知道如果PHP没有找到该文件,它将返回1969年的日期。但它没有意义。我可以获取该文件,为什么我不能获得修改日期?

我在这里尝试过单引号和双引号:

 date('F d, Y h:i', filectime("$ff")) or date('F d, Y h:i', filectime('$ff'))

但是,我仍然得到1969年的约会。

我尝试过很多其他PHP函数。 stat(),touch(),getlastmod()。我不知道还有什么用。

与filesize函数相同。它返回值0。

我不明白。

还有其他选择吗?我用错了吗?如果是这样,我该怎么做才能解决这个问题?

请帮忙。

0 个答案:

没有答案