Прежде чем кто-то отметит этот дубликат, поймите, что я искал этот сайт, поисковые запросы Google и PHP.net.Список всех файлов с датами рекурсивно с PHP
То, что я хочу, очень просто. Я хочу список всех файлов на веб-сайте с датой (последнее изменение). Я нашел несколько сценариев, которые утверждают, что делают это, но ни один из них не работает.
Лучшие один я нашел до сих пор это одна:
header("Pragma: public");
header("Cache-Control: private");
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=age-of-files.csv");
$result = array();
$handle = opendir(".");
while ($datei = readdir($handle))
{
if (($datei != '.') && ($datei != '..'))
{
$file = "./".$datei;
if (!is_dir($file))
$result[] = $file;
}
}
closedir($handle);
foreach($result as $r)
if (file_exists($r))
echo substr($r,2).",".date ("m-d-Y", filemtime($r))."\r\n";
Это прекрасно работает для dircetory скрипт запускается в, но это не является рекурсивным. Мне нужно, чтобы он продолжал работать в каждом подкаталоге. Моя цель состоит в том, чтобы иметь отсортированный список, чтобы я мог находить файлы, которые были изменены на определенных датах или вокруг них.
Я новичок в PHP, поэтому несите меня. Я провел некоторое исследование на PHP.net (я все время вижу, что люди относятся к SPL, и я не уверен, что это означает или что это такое, но, возможно, это группа стандартных классов PHP?), И мне кажется, что мне нужно чтобы каким-то образом использовать RecursiveDirectoryIterator.
Я нашел этот скрипт, который отлично выглядит на бумаге, но запуск его на моем сайте дает пустой белый экран.
try
{
/*** freds home directory ***/
$rdi = new recursiveDirectoryIterator('/', FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS);
$it = new recursiveIteratorIterator($rdi);
while($it->valid())
{
if(!$it->isDir())
{
echo $it->current().' '.date('Y m d H:i:s', $it->getATime())."\n";
}
/*** move to the next element ***/
$it->next();
}
}
catch(Exception $e)
{
/*** echo the error message ***/
echo $e->getMessage();
}
Я предпочел бы использовать первый сценарий, как мне нравится, что он создает файл CSV (легко сортировать), но я не знаю, как примирить два. Может ли кто-нибудь посоветовать мне, как включить RDI в первый скрипт?
Попробуйте без этих ', FilesystemIterator :: SKIP_DOTS | FilesystemIterator :: UNIX_PATHS' – Sayed