myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Webmaster Talk > Entwicklung & Programmierung
Seite neu laden

Problem mit Sortiereihenfolge in S*****

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 20.01.13, 17:52   #1
Gamebeast1989
Erfahrener Newbie
 
Benutzerbild von Gamebeast1989
 
Registriert seit: Sep 2009
Ort: NRW
Beiträge: 177
Bedankt: 197
Gamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt Punkte
Standard Problem mit Sortiereihenfolge in S*****

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 />';
}

?>
Gamebeast1989 ist offline   Mit Zitat antworten
Ungelesen 21.01.13, 07:54   #2
GigagamOr
Newbie
 
Benutzerbild von GigagamOr
 
Registriert seit: Oct 2009
Beiträge: 60
Bedankt: 25
GigagamOr ist noch neu hier! | 0 Respekt Punkte
Standard

Um von Z nach A, sprich umgekehrt, zu sortieren versuch mal krsort() statt ksort().

Für die letzten 30 Tage:
PHP-Code:
foreach($data as $key=> $value)
{
    if(
$value->getmtime() >= strtotime ('-30 day')){
        echo  
$value->getFilename() . '<br/>' ' Aktualisiert: ' date ("d.m.Y H:i:s."$value->getmtime()) .' <br />';
    }

Ich hoffe das ist das was du gemeint hast.
GigagamOr ist offline   Mit Zitat antworten
Ungelesen 25.01.13, 19:49   #3
Gamebeast1989
Erfahrener Newbie
 
Benutzerbild von Gamebeast1989
 
Registriert seit: Sep 2009
Ort: NRW
Beiträge: 177
Bedankt: 197
Gamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt Punkte
Standard

krsort() geht leider nicht... es kommt dann:

Fatal error: Call to undefined method ArrayObject::krsort() in C:\xampp\htdocs\lol.php on line 53
Gamebeast1989 ist offline   Mit Zitat antworten
Ungelesen 25.01.13, 19:53   #4
Gamebeast1989
Erfahrener Newbie
 
Benutzerbild von Gamebeast1989
 
Registriert seit: Sep 2009
Ort: NRW
Beiträge: 177
Bedankt: 197
Gamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt Punkte
Standard

okay... habs geändert... anstatt :

$data = new ArrayObject();

habe ich

$data = Array();

genommen und dann krsort($data).

Funktioniert nun super...

Jetzt habe ich nur das Problem, dass ich dieses s***** nutzen möchte aber NUR den letzten Ordner ausgeben möchte ABER nach den gleichen Suchkreterien... Ist dies möglich?
Habe ein paar Ansätze versucht, bekomme jedoch nur Fehlermeldugen... Ich wüsste nicht, wo ich ansetzen kann. Mit dem S***** suche ich ja nur nach Dateien
Gamebeast1989 ist offline   Mit Zitat antworten
Ungelesen 26.01.13, 16:36   #5
GigagamOr
Newbie
 
Benutzerbild von GigagamOr
 
Registriert seit: Oct 2009
Beiträge: 60
Bedankt: 25
GigagamOr ist noch neu hier! | 0 Respekt Punkte
Standard

Hab ich das richtig verstanden, du willst den aktuellsten Ordner ausgeben? Heißt den Inhalt des Ordners oder den Namen des Ordners?
GigagamOr ist offline   Mit Zitat antworten
Ungelesen 26.01.13, 17:22   #6
Gamebeast1989
Erfahrener Newbie
 
Benutzerbild von Gamebeast1989
 
Registriert seit: Sep 2009
Ort: NRW
Beiträge: 177
Bedankt: 197
Gamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt Punkte
Standard

Also eigentlich möchte ich gerne die jeweiligen Ordnernamen ausgeben, in den die gefilterten Dateien drin sind. Und nicht die gefilterten Dateien an sich....

Eine andere (ggf. sogar bessere) Alternative wäre, dass ich nach Ordnern suche, die innerhalb der letzten 30 Tage aktualisiert worden sind. Mit Ausschluss bestimmter namen im Ordnernamen (wie z.B. sample).
Gamebeast1989 ist offline   Mit Zitat antworten
Ungelesen 26.01.13, 20:37   #7
GigagamOr
Newbie
 
Benutzerbild von GigagamOr
 
Registriert seit: Oct 2009
Beiträge: 60
Bedankt: 25
GigagamOr ist noch neu hier! | 0 Respekt Punkte
Standard

Also um statt den Namen der Datei den des Ordners auszugeben verwende statt echo $value->getFilename()
PHP-Code:
echo basename(dirname('K:\FTP\VIDEO'), $value->getFilename()); 
Ich habe es nicht getestet, aber so, oder so ähnlich, müsste es funktionieren.
GigagamOr ist offline   Mit Zitat antworten
Ungelesen 27.01.13, 14:06   #8
Gamebeast1989
Erfahrener Newbie
 
Benutzerbild von Gamebeast1989
 
Registriert seit: Sep 2009
Ort: NRW
Beiträge: 177
Bedankt: 197
Gamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt PunkteGamebeast1989 putzt sich die Zähne mit Knoblauch. | 1218 Respekt Punkte
Standard

Funktioniert leider nicht, es wird nur der Ordnername : FTP ausgegeben...
Gamebeast1989 ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr.


Sitemap

().