Erstellungsdatum von Dateien auslesen?
Koyuki
- php
Hallo!
Ich habe folgendes Problem: ich habe einige 1000 Bilddateien in einem Ordner. In einer Datenbank möchte ich jetzt das Datum, an dem die Dateien hinzugefügt wurden speichern. Dazu möchte ich das Erstellungsdatum der Dateien auslesen und in die DB eintragen.
Soweit ich aber durch die Forensuche herausgefunden habe, kann ich nur das Datum der letzten Änderung auslesen. Da die Dateien aber alle an einem Tag auf den Webspace geladen wurden als ich den Provider gewechselt habe, ist das Datum jetzt überall gleich.
Unter Windows XP werden mir seltsamerweise unter "Date Modified" sehr viele verschieden Daten angezeigt, an denen ich die Dateien abgespeichert habe. Unter "Date Created" wird dafür überall das gleiche Datum angezeigt, in dem Fall das, als ich das letzte Mal Windows neu aufgesetzt habe und deshalb die Bilder herumverschoben habe.
Die Frage ist jetzt, komme ich unter PHP irgendwie an das Date Modified? Gibts da irgendwelche Tricks?
Und falls das auf keinen Fall funktioniert, kann ich das Datum unter Windows irgendwie so auslesen und in einer Textdatei abspeichern, dass es ohne große umständliche manuelle Veränderungen in eine Datenbank eingetragen werden kann?
Hallo,
Die Frage ist jetzt, komme ich unter PHP irgendwie an das Date Modified? Gibts da irgendwelche Tricks?
http://de2.php.net/manual/de/function.filemtime.php
Grüße, Ulli
Hallo,
Die Frage ist jetzt, komme ich unter PHP irgendwie an das Date Modified? Gibts da irgendwelche Tricks?
http://de2.php.net/manual/de/function.filemtime.phpGrüße, Ulli
Diese "fileXtime" Funktionen liefern mir wie gesagt leider immer nur das Datum, an dem die Datei auf den Webspace geladen wurde und das ist überall gleich.
Unter Windows findet man unter "Date Modified" aber ganz andere Daten und die würde ich gerne irgendwie auslesen. Ja, ich könnte es auch abtippen, aber ich würde gerne vor dem Jahr 2010 damit fertig werden. ;)
Hallo,
Unter Windows findet man unter "Date Modified" aber ganz andere Daten und die würde ich gerne irgendwie auslesen. Ja, ich könnte es auch abtippen, aber ich würde gerne vor dem Jahr 2010 damit fertig werden. ;)
Kann es vieleicht daran liegen, dass die Dateien auf deinem Computer andere sind als die auf deinem Webspace? Ansonsten sind die file-Funktionen deine Freunde. Du könntest dir mit WAMP lokal nen Apache/PHP/MySQL Konglomerat installieren und dein Script so die modified time auslesen lassen.
Grüße, Ulli
Hallo,
Unter Windows findet man unter "Date Modified" aber ganz andere Daten und die würde ich gerne irgendwie auslesen. Ja, ich könnte es auch abtippen, aber ich würde gerne vor dem Jahr 2010 damit fertig werden. ;)
Kann es vieleicht daran liegen, dass die Dateien auf deinem Computer andere sind als die auf deinem Webspace? Ansonsten sind die file-Funktionen deine Freunde. Du könntest dir mit WAMP lokal nen Apache/PHP/MySQL Konglomerat installieren und dein Script so die modified time auslesen lassen.Grüße, Ulli
Nein, es sind genau die gleichen Dateien. Diese Lösung ist mir auch schon in den Sinn gekommen, erscheint mir dann aber doch etwas umständlich.
Hallo,
Unter Windows findet man unter "Date Modified" aber ganz andere Daten und die würde ich gerne irgendwie auslesen.
Kann es vieleicht daran liegen, dass die Dateien auf deinem Computer andere sind als die auf deinem Webspace?
Nein, es sind genau die gleichen Dateien.
Ok - du hast also deinen Webserver auf deinem Computer zuhause zu laufen [1]. Ist das wirklich so? Oder sind die Dateien deiner Meinung nach gleich weil sie den gleichen Inhalt haben. Ich meinte aber die echt wirkliche physikalische Existenz.
Ansonsten sind die file-Funktionen deine Freunde. Du könntest dir mit WAMP lokal nen Apache/PHP/MySQL Konglomerat installieren und dein Script so die modified time auslesen lassen.
Diese Lösung ist mir auch schon in den Sinn gekommen, erscheint mir dann aber doch etwas umständlich.
Was allerdings nach [1] überhaupt nicht so sein sollte. Die WAMP-Installation ist in 5 Minuten durch und läuft ohne große Konfigurationsorgien.
Grüße, Ulli
Nein, auf meinem PC läuft kein Webserver. Ich habe die Dateien wie gesagt nur auf den Webspace geladen. Das hat aber offensichtlich gereicht um das Erstellungsdatum zu ändern.
Soweit ich das aber verstanden habe, gibt es sowas wie ein Erstellungsdatum nur unter Windows, weswegen ich auch nach einem Trick suche um es vielleicht doch unter Unix auch auslesen zu können.
Hallo,
Soweit ich das aber verstanden habe, gibt es sowas wie ein Erstellungsdatum nur unter Windows,
da hast Du etwas falsch verstanden.
weswegen ich auch nach einem Trick suche um es vielleicht doch unter Unix auch auslesen zu können.
Das Erstellungsdatum entspricht der Zeit, an dem die Scripte (höchst wahrscheilich mittels FTP) auf den Server geladen wurden - weil vorher waren sie ja nicht da. Ein guter FTP-Client sendet dem Server dazu ein "File Descriptor Block". Dies war wohl bei Dir nicht der Fall
Gruß aus Berlin!
eddi
Hallo,
Soweit ich das aber verstanden habe, gibt es sowas wie ein Erstellungsdatum nur unter Windows, ...
das weiß ich zwar nicht, aber ich kann es mir schwer vorstellen. Jedenfalls ist der Zusammenhang zwischen Erstellungs- und 'nderungsdatum unter Windows manchmal etwas verwirrend.
Sagen wir, eine Datei ist am 01.01.2006 erstellt, und am 15.01.2006 nachbearbeitet worden. Bis hierher ist es noch nachvollziehbar.
Dann wird die Datei *heute* in ein anderes Verzeichnis (z.B. auf einen FTP-Server) kopiert. Das heißt, dass im Zielverzeichnis eine neue Datei erstellt wird, deren Inhalt aber mit der ursprünglichen Datei identisch ist.
Jetzt hat die Kopie plötzlich das Erstelldatum 26.04.2006, aber das Änderungsdatum 15.01.2006 - es sieht also so aus, als wäre die Datei verändert worden, bevor sie überhaupt existiert.
Wenn man aber akzeptiert, dass Windows einer Datei beim Kopieren immer ein neues Erstelldatum verpasst, ist es nicht mehr ganz so verwirrend.
Schönen Abend noch,
Martin
PS: Auf meinem PC in der Firma hatte ich damals unter NT4 sogar Dateien, die laut Zeitstempel im Jahr 1786 erstellt wurden!
Hi,
Soweit ich das aber verstanden habe, gibt es sowas wie ein Erstellungsdatum nur unter Windows, weswegen ich auch nach einem Trick suche um es vielleicht doch unter Unix auch auslesen zu können.
Da die Dateien erst mit dem FTP-Upload erstellt wurden, ist schon alles korrekt so.
Workaround: Zeitangaben unter Windows in eine Datei schreiben (ob mit XAMPP und einem PHP-Script oder einfach die DIR-Ausgabe in eine Datei umlenken ist egal), Datei auf den Server spielen, dort mittels PHP-Script die Zeitangaben auslesen, den dortigen Dateien zuordnen und mit touch() ändern.
Gruß, Cybaer