Hallo Zusammen
ich hoffe Ihr könnt mir weiter helfen.
Ich habe ein S*****, welches mir meine Verzeichnisse nach bestimmten Dateien durchsucht.
Nun lasse ich diese Dateien nach der Aktualität sortieren.
Problem: Das S***** sortiert von A-Z und ich möchte gern von Z-A sortiert haben (mit dem Datum natürlich).
Sprich das Aktuellste oben stehen haben.
Als Zusatz hätte ich gerne, dass mir nur die Aktuellsten Dateien der letzten 30 Tage anzeigt.
Hier mein S*****:
PHP-Code:
<?php
class FileExtensionFilterIterator extends FilterIterator
{
protected $whitelist;
public function __construct(Iterator $iterator, array $whitelist)
{
parent::__construct($iterator);
$this->whitelist = $whitelist;
}
public function accept()
{
$fileInfo = parent::current();
// Nur Dateien
if (!$fileInfo->isFile()) {
return false;
}
// Nur mit Endung aus $whitelist
$pi = pathinfo($fileInfo->getFilename());
if (!in_array(strtolower($pi['extension']), $this->whitelist)) {
return false;
}
return true;
}
}
$path = 'K:\FTP\VIDEO';
$whitelist = array('avi', 'mkv', 'flv'); // Aufzulistende Dateiendungen
$iterator = new FileExtensionFilterIterator(
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path)),
$whitelist);
$data = new ArrayObject();
// erstellen eines ArrayObjects mit den SplFileInfo-Objekten
foreach($iterator as $value)
{
$data[$value->getmtime()] = $iterator->getFileInfo();
}
// sortieren
$data->ksort();
// ausgeben
foreach($data as $key=> $value)
{
echo $value->getFilename() . '<br/>' . ' Aktualisiert: ' . date ("d.m.Y H:i:s.", $value->getmtime()) .' <br />';
}
?>