Datum/Uhrzeit einer Grafik anzeigen

radarin

Angesehenes Mitglied
Mit 'getimagesize()' kann ich Höhe und Breite einer Bilddatei ermitteln. Meist enthalten diese aber auch Angaben zu Datum und Uhrzeit. Kann ich diese mit PHP ebenfalls sichtbar machen? In der Doku bin ich jedenfalls nicht fündig geworden...

Gruss René
 
as bezieht sich aber nicht auf den Zeitpunkt wo ich die datei auf den server kopiert habe?
 
danke, aber die funktionalität von exif kann ich offenbar nicht als selbstverständlich voraussetzen. das verursacht nur probleme wenn user mein script runterladen.
 
QUOTE (radarin @ Mi 31.1.2007, 19:52) danke, aber die funktionalität von exif kann ich offenbar nicht als selbstverständlich voraussetzen. das verursacht nur probleme wenn user mein script runterladen.

Hallo,

du hast grundsätzlich 2 möglichkeiten:

1. du läßt das Datum der Datei ausgeben ODER
2. du wertest die EXIF Daten aus.


Andere "Datumsangaben" wirst du bei einem Bild nicht finden.
Und beide Möglichkeiten wurden hier bereits genannt,
 
1) funktioniert tadellos, liefert aber nicht das erstellungsdatum des Bildes
2) funktioniert auf meiner php konfiguration und liefert das richtige datum nebst allerlei zusatzinfos die ich unterdrücken will. da muss ich noch etwas mit dem array rum probieren.

was aber passiert, wenn exif auf dem verwendeten server nicht funktioniert? die anzeige des datums in der bildergallery ist lediglich ein nettes gimmick und wird für die funktionalität nicht benötigt. ich möchte deshalb nicht dass es zu unnötigen fehlermeldungen führt.

wie kann ich prüfen, ob exif funktioniert und die funktion ggf. unterbinden?

Nachtrag:

CODE
$exif = exif_read_data($filename, 'IFD0');
if ($exif!==false){
// header vorhanden
$exif = exif_read_data($filename, 0, true);
foreach ($exif as $key => $section) {
foreach ($section as $name => $val) {
if($key == "IFD0" AND $name == "DateTime"){ echo $val."<br>"; }
if($key == "EXIF" AND $name == "DateTimeOriginal"){ echo $val."<br>"; }
}
}

}



Dieses Konstrukt liefert das korrekte Datum/Uhrzeit. Allerdings liefert das foreach 70 Zeilen, was meinem Gefühl nach den Seitenaufbau erheblich bremst. (Firefox ist generell schneller als der MSIE) Gibt es da noch eine elegantere Lösung? Und was passiert wenn der Server exif nicht unterstützt?

Wer sich für das Ergebnis interessiert sieht hier beim Überfahren der Thumbnails in den Tooltips...
 
umm ich weiß jetzt nicht wie das exif Array funktioniert, aber warum geht denn nicht

CODE
echo $exif['IFD0']['DateTime'];
echo $exif['EXIF']['DateTimeOriginal'];



und evtl. mit array_key_exists() prüfen ob es die Keys gibt?
 
Die direkte Ausgabe funktioniert soweit, aber da mit 'array_key_exists' krieg ich nicht hin, in den Anleitungen sind immer nur einfache Werte ohne [] angegeben...

Habs jetzt so gelöst, so bekomme ich auch keine Fehlermeldungen ausgegeben:

CODE
// Bildinformationen lesen
$filename = $homedir.$subdir.$file;
if (file_exists($filename)) {
$exif_array = @exif_read_data($filename, 'IFD0');
if ($exif_array!==false){
// header vorhanden
$exif_array = @exif_read_data($filename, 0, true);
$filetime = ""; $camname = ""; $cammodel = "";

$filetime = $exif_array['IFD0']['DateTime'];
if($filetime == ""){$filetime = $exif_array['EXIF']['DateTimeOriginal'];}
$camname = $exif_array['IFD0']['Make'];
$cammodel = $exif_array['IFD0']['Model'];
if($filetime != ""){$filetime = $picdate.": >".$filetime."<br>";}
if($camname != ""){$camname = $piccam.": >".$camname."<br>";}
if($cammodel != ""){$cammodel = $piccammod.": >".$cammodel."<br>";}

}//$exif!==false

$fileinfo = "<nobr>".$filetime."</nobr>"."<nobr>".$camname."</nobr>"."<nobr>".$cammodel."</nobr>";

}

echo $fileinfo;

$filetime = ""; $camname = ""; $cammodel = "";



Dank Euch für die Anregungen, Gruss René
 
habe da mal eine frage geht das eigentlich nicht auch mit:

<?php
$filetime = filemtime("bild.gif");
$sfiletime = date("d.m.Y - H:i", $filetime);
?>

oder habe ich da nen hirnzellenrutscher ???
wink.gif
 
QUOTE (ThePosterity @ Sa 3.2.2007, 19:16) habe da mal eine frage geht das eigentlich nicht auch mit:

<?php
$filetime = filemtime("bild.gif");
$sfiletime = date("d.m.Y - H:i", $filetime);
?>

oder habe ich da nen hirnzellenrutscher ???
wink.gif


Hallo,

filemtime gibt dir das Datum aus, an dem die Datei erstellt wurde. Dies läßt sich in den Attributen der Datei speichern, i.d.R. ist dies das Datum der Erstellung, manchmal wird beim kopieren mittels FTP auch das Erstellungsdatum der Originaldatei auf dem Heim-PC mit übernommen, ist Einstellungssache des FTP Programms und des verwendeten Betriebssystems.
 
ja is schon klar dann muss eben das ftp prg so eingestellt werden das das
datum nicht geändert wird und der gewüschte effekt wäre doch genau der selbe (und kürzer) ?
denke ich so als anfänger
huh.gif

 
exif zigt mir nur dann daten an, wen diese im bild hinterlegt sind, also wann das bild gemacht wirde. und gleich auch noch mit welcher kammera. ganz interessant. lieber keine anzeige als eine falsche. ist ja auch nicht funktionsrelevant.
 
Zurück
Oben