У меня проблема с получением информации о файле из папки.
Конечно, я использую 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.
Я не понимаю
Есть ли альтернатива? Я использую это неправильно? Если так, что я могу сделать, чтобы это исправить?
Пожалуйста помоги.
Задача ещё не решена.
Других решений пока нет …