Проблемы с PHP при получении файла, последнего изменения даты и размера файла

У меня проблема с получением информации о файле из папки.

Конечно, я использую 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 возвращает дату 31 декабря 1969 года.

Файлы находятся в правильном каталоге. Если я могу отобразить файлы на своей странице, а пользователь может загрузить файлы, то почему бы не получить дату изменения? Я понимаю, что если PHP не найдет файл, он вернет дату 1969 года. Но это не имеет смысла. Я могу получить файл, так почему я не могу получить дату изменения?

Я попытался поставить одинарные и двойные кавычки здесь:

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

Но все же я получаю дату 1969 года.

Я пытался многие другие функции PHP. stat(), touch(), getlastmod(). Я не знаю, что еще использовать.

То же самое с функцией размера файла. Возвращает значение 0.

Я не понимаю

Есть ли альтернатива? Я использую это неправильно? Если так, что я могу сделать, чтобы это исправить?

Пожалуйста помоги.

0 ответов

Другие вопросы по тегам