php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.01.2012, 18:03  
Benutzer
 
Registriert seit: 02.12.2009
Beiträge: 31
PHP-Kenntnisse:
Anfänger
ctacont ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Erledigt] Dateien nach Datum sortiert / gruppiert

Hallo,

ich lasse Dateien (mit Datum) aus dem Ordner einlesen.
Die Dateien werden dann nach Datum gruppiert und aufgelistet.

Hier der Code:
PHP-Code:
$dir "../images/p_ARBEITSORDNER/";

  
$result = array();
  
$handle =  opendir($dir);
     while (
$datei readdir($handle))
     {
          if ((
$datei != '.') && ($datei != '..'))
          {
               
$file $dir.$datei;
               if (!
is_dir($file))
                    
$result[] = $file;               
          }
     }
     
closedir($handle);
     
//Datei upload Datum anzeigen ************************************************
$datuma date ("d"filemtime($r)); $datumb date ("m"filemtime($r)); $datumc date ("Y"filemtime($r));
$ok $datuma;
$dateien $result;
$dateien = array();
  foreach(
$result as $r)
    if (
file_exists($r)){
        
$farbeg "green"$farbe "red";
        
$datuma date ("d"filemtime($r)); $datumb date ("m"filemtime($r)); $datumc date ("Y"filemtime($r));
        
$datum $datuma.".".$datumb.".".$datumc;

       if(
$datuma != $ok){
            
$dateien[] = "--------------------------------------------------- <br>";
            
$ok $datuma;
        }

        if(
$datuma == $ok){
            
$dateien[] = "<span style='font-family:arial; font-size:13px'><span style='color: $farbe' ><b>"$datum ."</b> = ".substr($r,26)."</span></span><br>";
            
$ok $datuma;
        }
    }
// Dateien nach Datum sortieren
//rsort($dateien); // = Datum absteigend sortieren / für aufsteigend -> 'sort($dateien);'
foreach ($dateien as $element) {  
 echo 
$element;

Hier das Ergebnis:
Zitat:
18.11.2011 = 001S18.jpg
18.11.2011 = 001S24.jpg
18.11.2011 = 001S25.jpg
18.11.2011 = 002p000202.jpg
18.11.2011 = 002p000301.jpg
---------------------------------------------------
15.09.2011 = 002p107S-E.jpg
15.09.2011 = 002p109S-E.jpg
---------------------------------------------------
18.11.2011 = 002p6012.jpg
18.11.2011 = 002p6014.jpg
18.11.2011 = 002p6022.jpg
---------------------------------------------------
15.09.2011 = 002p6207FB-E.jpg
15.09.2011 = 002p6207H-E.jpg
15.09.2011 = 002p6501H-E.jpg
15.09.2011 = 002p6502H-E.jpg
15.09.2011 = 002p6503H-E.jpg
15.09.2011 = 002p6504H-E.jpg
---------------------------------------------------
18.11.2011 = 002p8450.jpg
Ich schaffe es leider nicht die Auflistung mit den "Trennungen"
nach Datum sortiert
auszugeben.

Ohne die Tennzeichen klappt das wunderbar mit "sort" und dergleichen.


gruß ctacont
ctacont ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.01.2012, 23:38  
Erfahrener Benutzer
 
Benutzerbild von Aceh
 
Registriert seit: 01.03.2011
Beiträge: 120
PHP-Kenntnisse:
Anfänger
Aceh befindet sich auf einem aufstrebenden Ast
Aceh eine Nachricht über ICQ schicken
Standard

sort(), auch wenn ich diese funktion noch nie genutzt hatte
Aceh ist offline   Mit Zitat antworten
Alt 11.01.2012, 02:13  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Du betreibst zuviel aufwand, deine Lösung die du suchst ist mit usort + uksort sowie dateTime zu regeln.

PHP-Code:
define('MY_DATE_FORMAT''Y-m-d');
define('MY_DATETIME_FORMAT'MY_DATE_FORMAT.' H:i:s');

$sortableFiles = array();
$directoryData glob('path/to/dir');

$fileSortingLambda = function ( $current$next ) {
   
$current date_create_from_format(MY_DATETIME_FORMAT$current);
   
$next date_create_from_format(MY_DATETIME_FORMAT$next);
   
   if ( 
$current == $next ) return 0;
   return 
$current $next ? -1;
};

$dateSortingLambda = function ( $current$next ) use ( $fileSortingLambda ) {
   return 
$fileSortingLambda($current.' 00:00:00'$next.' 00:00:00');
};

foreach ( 
$directoryData as $curFile ) {
   
$date date(MY_DATE_FORMATfilemtime($curFile));
   
$dateTime date(MY_DATETIME_FORMATfilemtime($curFile));
   
$sortableFiles[$date][$curFile] = $dateTime;
   
usort$sortableFiles$fileSortingLambda );
}

uksort$sortableFiles$dateSortingLambda ); 
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.

Geändert von tr0y (11.01.2012 um 10:43 Uhr).
tr0y ist offline   Mit Zitat antworten
Alt 11.01.2012, 09:08  
Benutzer
 
Registriert seit: 02.12.2009
Beiträge: 31
PHP-Kenntnisse:
Anfänger
ctacont ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für den Vorschlag. Werd mich mal mit dem Script
auseiandersetzen.

gruß ctacont
ctacont ist offline   Mit Zitat antworten
Alt 11.01.2012, 09:29  
Benutzer
 
Registriert seit: 02.12.2009
Beiträge: 31
PHP-Kenntnisse:
Anfänger
ctacont ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Tr0y,

der Script funktioniert leider nicht. Mit Xampp getestet kommt eine "parse error" Meldung. Ich weiss leider nicht, ob das wegen der Apache Version ist,
aber die Fehlermeldung gilt für diese Zeile:
PHP-Code:
$fileSortingLambda = function ( $current$next ) { 
Hier sind noch Klammern zuviel, kommt auch Fehlermeldung:
PHP-Code:
..........

$fileSortingLambda = function ( $current$next ) {
   
$current date_create_from_format(MY_DATETIME_FORMAT$current);
   
$next date_create_from_format(MY_DATETIME_FORMAT$next);
   
   if ( 
$current == $next ) return 0;
   return 
$current $next ? -1;
}); 
//<-- Fehler: Klammer zu nach geschweifter Klammer

$dateSortingLambda = function ( $current$next ) use ( $fileSortingLambda ) {
   return 
$fileSortingLambda($current.' 00:00:00'$next.' 00:00:00');
}); 
//<-- Fehler: Klammer zu nach geschweifter Klammer

........... 
ctacont ist offline   Mit Zitat antworten
Alt 11.01.2012, 09:31  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

PHP 5.3.x ist nötig. Die klammern und geschweiften Klammern sollen so.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 11.01.2012, 09:59  
Benutzer
 
Registriert seit: 02.12.2009
Beiträge: 31
PHP-Kenntnisse:
Anfänger
ctacont ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich hab PHP 5.2.9.
Muss leider die 5.2 Version nehmen, weil viele Scripte lokal auf 5.2 laufen.

gruss ctacont
ctacont ist offline   Mit Zitat antworten
Alt 11.01.2012, 10:17  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Die runden Klammern in den Zeilen mit Fehler sind auch unter 5.3 zuviel.
jspit ist offline   Mit Zitat antworten
Alt 11.01.2012, 10:43  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von jspit Beitrag anzeigen
Die runden Klammern in den Zeilen mit Fehler sind auch unter 5.3 zuviel.
Öh, ich glaub ich sollte mir abgewöhnen multitasking in Foren zu betreiben ^^

Sorry, *verbesser*.

PHP-Code:
define('MY_DATE_FORMAT''Y-m-d');
define('MY_DATETIME_FORMAT'MY_DATE_FORMAT.' H:i:s');

$sortableFiles = array();
$directoryData glob('path/to/dir');

$fileSortingLambda = function ( $current$next ) {
   
$current date_create_from_format(MY_DATETIME_FORMAT$current);
   
$next date_create_from_format(MY_DATETIME_FORMAT$next);
   
   if ( 
$current == $next ) return 0;
   return 
$current $next ? -1;
};

$dateSortingLambda = function ( $current$next ) use ( $fileSortingLambda ) {
   return 
$fileSortingLambda($current.' 00:00:00'$next.' 00:00:00');
};

foreach ( 
$directoryData as $curFile ) {
   
$date date(MY_DATE_FORMATfilemtime($curFile));
   
$dateTime date(MY_DATETIME_FORMATfilemtime($curFile));
   
$sortableFiles[$date][$curFile] = $dateTime;
   
usort$sortableFiles$fileSortingLambda );
}

uksort$sortableFiles$dateSortingLambda ); 
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 11.01.2012, 11:22  
Benutzer
 
Registriert seit: 02.12.2009
Beiträge: 31
PHP-Kenntnisse:
Anfänger
ctacont ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab jetzt PHP 5.3 zusätzlich installiert und den Script probiert.
Hab 1:1 kopiert und in mein PHP-Editor eingefügt.

Irgendwie läuft der Script nicht.
Hier die Fehlermeldung:
PHP-Code:
Warningdate_create_from_format() expects parameter 2 to be string, array given in I:........testen3.php on line 9

Warning
date_create_from_format() expects parameter 2 to be string, array given in I:........testen3.php on line 10 
line 9 + line 10:
PHP-Code:
$fileSortingLambda = function ( $current$next ) {
   
$current date_create_from_format(MY_DATETIME_FORMAT$current); //<- line 9
   
$next date_create_from_format(MY_DATETIME_FORMAT$next); //<- line 10 

gruss ctacont

Geändert von ctacont (11.01.2012 um 12:02 Uhr).
ctacont ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Heutiges DAtum mit Datum in Datenbank mittels if vergleichen mattla93 PHP Tipps 2009 11 25.03.2010 13:48
[Erledigt] Aktuelles Datum mit Datum aus der DB vergleichen kreativepassion PHP Tipps 2009 17 13.11.2009 22:38
Ausgabe nach Datum sortiert ausgeben Cetax PHP Tipps 2009 14 18.10.2009 14:38
[Erledigt] Ordner auslesen und Dateien SORTIERT anzeigen? Moe LaRoqua PHP Tipps 2009 8 13.09.2009 19:50
[Erledigt] Überprüfen ob Datum zwischen 2 Datums liegt ketchup PHP Tipps 2009 12 07.09.2009 15:03
Dateien nach datum sortieren nach upload suwofis PHP Tipps 2009 3 01.07.2009 21:27
Datumsformat "Monat Jahr" eingeben und sortiert ausgeben. dahead PHP Tipps 2009 15 01.04.2009 10:34
[Erledigt] Aktuellstes Datum von Dateien rekursiv ermitteln marcus_78 PHP Tipps 2008 11 24.06.2008 09:37
[Erledigt] Datums Foumulareingabe mit Datebankeintrag Datum vergleichen freakymiky PHP Tipps 2008 1 21.06.2008 15:49
Dateien nach Datum sortieren ddog PHP Tipps 2008 4 09.03.2008 10:11
wie sortiert man Datum bei SQL Abfrage? rockinchina PHP Tipps 2005-2 8 27.09.2005 12:57
Daten aus MYSQL nach Datum filtern Datenbanken 3 19.09.2005 16:09
[Erledigt] datum in mysql datenbank! Datenbanken 7 09.07.2005 14:43
Datum und Zeit PHP Tipps 2004-2 5 11.12.2004 23:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
dateien sortieren nach datum, php dateien nach datum sortieren, php sortieren nach datum, php dateien datum ausgeben absteigend, php verzeichnisinhalt auflisten datum sortiert, php anzeige nach jahr und monat geordnet, dateien mit datum auflisten dir, daten sortieren in r, script nach datum sortieren, dateien sortiert anzeigen, dateien nach datum oerdnen, php fuktion datum umwandeln, php script dateien nach datum sortieren, warning: file_exists() expects parameter 1 to be string, array given in, dokumente nach datum sortieren, php filesortinglambda

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum