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 29.12.2011, 15:10  
zach_1
Gast
 
Beiträge: n/a
Standard Datum auslesen und vergleichen

Hallo an alle
Ich hoffe das Ihr mir bei meinem Problem helfen könnt. Ich komme nicht mehr weiter.
Ich lese einen Ordner aus und möchte von jedem Inhalt das Datum der letzen Änderung bekommen. Leider liest mir mein Code nur zwar den Inhalt aus, aber gibt mir nur das Datum des Ordners zurück.
Ich weiß nicht woran dies liegen kann.
Danach wollte ich das Datum der Änderung so vergleichen.
Schreib mir die Namen der Dateien in einer Table, die nicht älter als 24 Std sind.
Ich habe viel herumprobiert, aber ich komme nicht auf die Lösung. Ich hoffe das ihr mir dabei helfen könnt.

PHP-Code:
<?php
$ordner 
"listen";
$alledateien scandir($ordner);
foreach (
$alledateien as $datei)
{
    
// Zusammentragen der Dateiinfo
    
$dateiinfo pathinfo($ordner."/".$datei);

    
$str $dateiinfo['filename'];
    
$teilexplode("_"$str);
    
$len count($teil);

    for (
$i=0$i<$len$i++)
    
printf("%d: %s<br>\n"$i$teil[$i]);

    
$size ceil(filesize($ordner."/".$datei)/1024);
    if (
$datei != "." && $datei != "..") {}

     if (
file_exists($datei))
     {
        
$datum date ("F d Y H:i:s."filemtime($datei));
        echo 
"Datei $datei wurde zuletzt am $datum aktualisiert";
      }
}
?>
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.12.2011, 15:14  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Deine Frage habe ich nicht verstanden. Woran genau haperts?
__________________
dsentker ist offline   Mit Zitat antworten
Alt 29.12.2011, 15:21  
zach_1
Gast
 
Beiträge: n/a
Standard

Eigentlich sind es 2 fragen.
die erste frage lautet:
Was ist an meinem Code falsch, da er nur das Datum des Ordners ausliest, aber nicht die der einzelnen dateien die sich in dem Ordner befinden.

Die 2. frage ist eingentlich eine bitte um hilfestellung.
wie kann ich, wenn ich ein Datum bekomme, prüfen ob dieses Datum nicht älter als 24 Std. ist.
Ich möchte ereeichen das nur die Dateinamen ausgegeben werden, die nicht älter als 24 Std. sind.
Ich weiß das ich die Zeit mit "Sekunden" vergleichen muß, habe aber keinen Ahnung wie ich dies hinbekomme.
Google hat mir leider bis dato auch nicht geholfen
  Mit Zitat antworten
Alt 29.12.2011, 16:06  
Erfahrener Benutzer
 
Registriert seit: 07.12.2009
Beiträge: 843
PHP-Kenntnisse:
Fortgeschritten
chorn befindet sich auf einem aufstrebenden Ast
Standard

scandir()
Zitat:
Gibt ein Array aus Dateien und Verzeichnissen des aktuellen directory wieder.
da steht nichts davon, dass Scandir rekursiv arbeitet. Das musst du einbauen, oder sowas wie DirectoryIterator benutzen (mal suchen bei Google).

Um das Datum zu vergleichen kannst du

http://de2.php.net/manual/en/datetim...fromformat.php

und diff() benutzen (im Manual verlinkt)
chorn ist offline   Mit Zitat antworten
Alt 29.12.2011, 16:42  
zach_1
Gast
 
Beiträge: n/a
Standard

Danke für Deine Antwort, aber ich komme mit dem DirectoryIterator nicht weiter.
Ich bin blutiger anfänger und habe für diesen Code schon mehr als 2 tage benötigt.

An den vergleich werde ich mich erst dransetzen wenn das erste klappt.

Was ich nicht verstehe ist, das ich eine ausgabe bekomme, in der die 3 textdateien im Verzeichnis aufgelistet und auch geteilt werden. Warum ist dann "scandir" falsch?

PHP-Code:
Datei wurde zuletzt am December 29 2011 13:59:09. aktualisiert0:
Datei .. wurde zuletzt am December 29 2011 13:57:59. aktualisiert0: .
0slsrpt
1
20111205
2
150511
3
1
4
1
0
slsrpt
1
20111205
2
150513
3
2
4
1
0
slsrpt
1
20111205
2
152604
3
2
4

  Mit Zitat antworten
Alt 29.12.2011, 17:14  
Erfahrener Benutzer
 
Registriert seit: 07.12.2009
Beiträge: 843
PHP-Kenntnisse:
Fortgeschritten
chorn befindet sich auf einem aufstrebenden Ast
Standard

Dein

PHP-Code:
     if (file_exists($datei)) 
wird auf jeden Fall fehlschlagen, weil du den Verzeichnisnamen nicht mitgibst, siehe

PHP-Code:
    $dateiinfo pathinfo($ordner."/".$datei); 

...

    
$size ceil(filesize($ordner."/".$datei)/1024); 
chorn ist offline   Mit Zitat antworten
Alt 29.12.2011, 17:27  
zach_1
Gast
 
Beiträge: n/a
Standard

Danke, jetzt klappt es.
Nun mache ich mich an den Datumsvergleich
  Mit Zitat antworten
Alt 30.12.2011, 09:33  
zach_1
Gast
 
Beiträge: n/a
Standard

Nachdem ich den ganzen Abend noch bei dem Datumsvergleich saß und keine Lösung finden konnte, hoffe ich nochmals auf Eure unterstützung.
Ich kann den Zeitstempel einer Datei auslesen und mir auch ausgeben lassen. Nun möchte ich aber erreichen, das mir das PHP-script nur dann die Datei anzeigt, wenn diese nicht älter als 24 Stunden ist.

Wie schon geschreiben habe ich den Zeitstempel der Datei und mit "time()" lasse ich mir die aktuelle Zeit ausgeben, bezw. ich weiße diese einer Veriablen zu.
Aber wie kann ich nun meinen vergleich starten? Die Zeit wird in Sekunden gerechnet, soweit ich weiß, aber ich komme nicht auf die Lösung.
Mit "diff" habe ich es unter anderem versucht, aber kein erfolg gehabt.

Bisher habe ich das folgende. Aber wie gesagt...Ich komme nicht auf die lösung.
PHP-Code:
$ordner "listen";
$alledateien scandir($ordner);
foreach (
$alledateien as $datei)
{
    
// Zusammentragen der Dateiinfo
    
$dateiinfo pathinfo($ordner."/".$datei);

    
$str $dateiinfo['filename'];
    
$teilexplode("_"$str);
    
$len count($teil);
     if (
file_exists($ordner."/".$datei))
     {
        if (
$datei != "." && $datei != "..")
        {
          
$datum date (" d m Y H:i:s."filemtime($ordner."/".$datei));
          
$heute time();
          
$anzahltage = ($heute $datum)/86400;
           if (
$anzahltage == 1)
           {
             
$filesize sprintf("%u"filesize($ordner."/".$datei));
             echo 
"Datei $datei wurde am $datum erstellt und hat eine größe von $filesize kb <br><br>";
           }
    
        }
      } 
Ich danke euch im vorraus

Geändert von zach_1 (30.12.2011 um 10:33 Uhr).
  Mit Zitat antworten
Alt 30.12.2011, 10:41  
Erfahrener Benutzer
 
Registriert seit: 07.12.2009
Beiträge: 843
PHP-Kenntnisse:
Fortgeschritten
chorn befindet sich auf einem aufstrebenden Ast
Standard

Wieviel Sekunden hat denn so ein Tag? Und was musst du du mit den Sekunden machen, um 24 Stunden von jetzt an zurückzurechnen? Kleiner Tipp: Es sind zwei von denen hier: plus, mal, minus, geteilt, größer, kleiner, größer gleich, kleiner gleich. Das, was date() zurückliefert, ist übrigens kein timestamp. Guck dir das nochmal genau an und prüfe den Rückgabewert (echo $datum);
chorn ist offline   Mit Zitat antworten
Alt 30.12.2011, 11:01  
zach_1
Gast
 
Beiträge: n/a
Standard

Meine jetzige ausgabe sieht so aus:

"Datei XXX.edi wurde am 29 12 2011 17:14:56. erstellt und hat eine größe von 468 kb "

Die daten und das Datum stimmt. Das Datum habe ich mit "date()" formatiert.


Mein Ansatz ist, das ich mit time() mir das aktuelle Datum hole und dann dieses mit dem $datum vergleiche. Ich weiß nun das dieser Ansatz falsch ist, deswegen habe ich ja um hilfe gefragt.
Diese Datumsberechung in PHP finde ich mehr als nur verwirrend. Mir fehlt der richtige ansatz für das Problem.
  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
Bestellung nach Datum auslesen klappt nicht kl_welf PHP Einsteiger 20 15.10.2011 14:24
[Erledigt] Einzelnes Datum aus FOR auslesen und als Variable speichern. sheriff PHP Einsteiger 3 02.02.2011 13:34
Heutiges DAtum mit Datum in Datenbank mittels if vergleichen mattla93 PHP Tipps 2009 11 25.03.2010 13:48
datum aus datenbank auslesen und weiterverarbeiten Darkness Datenbanken 2 22.02.2010 19:14
mysqli_multi_query lässt Eintrag aus... Samhayne Datenbanken 8 07.02.2010 19:02
[Erledigt] Datum in MySQL eintragen und auslesen hyperx PHP Tipps 2009 9 02.01.2010 19:04
[Erledigt] Aktuelles Datum mit Datum aus der DB vergleichen kreativepassion PHP Tipps 2009 17 13.11.2009 22:38
Excel-Datei auslesen / Problem mit Datum vollkommenegal PHP-Fortgeschrittene 22 10.06.2009 08:19
Datum speichern und vergleichen 22hase Datenbanken 17 03.12.2008 19:44
[Erledigt] Datums Foumulareingabe mit Datebankeintrag Datum vergleichen freakymiky PHP Tipps 2008 1 21.06.2008 15:49
datum vergleichen LP PHP Tipps 2006 2 18.07.2006 15:12
[Erledigt] Datum vergleichen PHP Tipps 2005-2 1 03.09.2005 16:55
[Erledigt] 2 verschiedene Datum vergleichen - Datenbankabfrage Datenbanken 3 19.06.2005 10:29
datum auslesen eintragen PHP Tipps 2005 23 13.04.2005 20:39
[Erledigt] Datum vergleichen! PHP Tipps 2004 1 20.09.2004 14:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
phpo datumsvergleich 24 stunden, vba speicherdatum einer datei auslesen, php dateidatum vergleichen, datei datum auslesen, $dateiinfo, php datei alter vergleichen, php alter von dateien vergleichen, excel 2010 datum der letzten änderung aus datei auslesen, php dateidatum auslesen und vergleichen, datum in excel vergleichen und auslesen, vb 2010 dateidatum vergleich, filemtime vergleichen, vba excel 2007 dateidatum ermitteln, aus datei zeit vergleichen php, php alter einer datei datum ermitteln, php datum datei auslesen, php dateiinfo datum, datum einer datei abfragen php, php änderungsdatum von dateien auslesen, datumsformat 20111205 vba

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:43 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