Exif-Daten können mittels PHP aus Bilddateien ausgelesen werden.
Folgende EXIF-Funktionen werden jedoch erst ab PHP Version 4.2.0 ünterstützt, daher wird zunächst geprüft ob mindestens diese PHP Version zu Verfügung steht.
// PHP-Version ermitteln
$verstr=explode(".",phpversion());
$vernum=$verstr[0]*100+$verstr[1]*10+$verstr[2]*1;
$bild="bild.jpg";
if($vernum >= 420)
{
// Parameter: filename (string),sections(string),arrays(bool),thumbnail(bool)
$exifdata=exif_read_data($bild,"",true,false);
// Auslesen einiger Eigenschaften aus dem (mehrdim.) Array $exifdata
if($exifdata["FILE"])
{
print "Dateiname: {$exifdata["FILE"]["FileName"]}";
print "DateTimeOriginal: {$exifdata["FILE"]["DateTimeOriginal"]}";
print "FileDateTime: {$exifdata["FILE"]["FileDateTime"]}";
print "Dateigröße: ".number_format($exifdata["FILE"]["FileSize"]/1024, 0, ',', '.')." kb";
}
if($exifdata["EXIF"])
{
print "ExifImageWidth: {$exifdata["EXIF"]["ExifImageWidth"]}";
print "ExifImageLength: {$exifdata["EXIF"]["ExifImageLength"]}";
print "Komprimierte Bits pro Pixel: {$exifdata["EXIF"]["CompressedBitsPerPixel"]}";
print "Blende: {$exifdata["EXIF"]["FNumber"]}";
print "Brennweite: {$exifdata["EXIF"]["FocalLength"]}";
print "Belichtungsdauer : {$exifdata["EXIF"]["ExposureTime"]}";
print "Blitz: {$exifdata["EXIF"]["Flash"]}";
print "Exif Version: {$exifdata["EXIF"]["ExifVersion"]}";
}
if($exifdata["COMPUTED"])
{
print "IsColor: {$exifdata["COMPUTED"]["IsColor"]}";
print "html: {$exifdata["COMPUTED"]["html"]}";
}
if($exifdata["IFD0"])
{
print "Hersteller: {$exifdata["IFD0"]["Make"]}";
print "Model: {$exifdata["IFD0"]["Model"]}";
print "ImageDescription: {$exifdata["IFD0"]["ImageDescription"]}";
}
if($exifdata["COMMENT"])
{
print "COMMENT: {$exifdata["COMMENT"][0]}";
}
}
else print "Diese Funktion wird erst ab PHP 4.2.0 unterstützt.";
/*EXIF ENDE ***************/
danke für den Post! Hat mir geholfen..
schönen Gruß – alex
Zum formatieren einiger Daten würde ich das Skript so schreiben:
if (isset($exifdata[“EXIF”][“FNumber”])) {
$temp = explode(“/”, $exifdata[‘EXIF’][‘FNumber’]);
$temp = $temp[0] / $temp[1];
print “Blende: {$temp}”. “”;
}
if (isset($exifdata[“EXIF”][“FocalLength”])) {
$temp = explode(“/”, $exifdata[‘EXIF’][‘FocalLength’]);
$temp = $temp[0] / $temp[1];
print “Brennweite: {$temp}mm”;
}
if (isset($exifdata[“EXIF”][“ExposureTime”])) {
$temp = explode(“/”, $exifdata[‘EXIF’][‘ExposureTime’]);
$temp = round($temp[0] / $temp[1],4);
print “Belichtungsdauer : {$temp}s (“.$exifdata[“EXIF”][“ExposureTime”].”)”;
}
Danke für das Beispiel. Bin gerade auch am “herumprobieren”. Die Funktionsbeschreibungen im php Handbuch sind teilweise etwas dürftig für meinen Geschmack.
Hier der Links, falls jemand danach sucht:
http://www.php.net/exif
Hi, danke für den Tipp.
Habe davor schon wo anders her einen Script gehabt, der das selbe machen sollte, aber mir wurden nur Fehler angezeigt. Da ich noch nicht viel mit PHP gemacht habe weiß ich nicth was das Problem ist – aber dein Scrip funktioniert – also liegt es nicht an meinen Servereinstellungen – dankeschön – neue Hoffnung *g*