LautundKlar Webdesign Blog

22. November 2006

Exif-Daten mit PHP auslesen

Abgelegt unter: Dies und Das, PHP — Andreas Jobst @ 18:57

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 ***************/

Popularity: 47% [?]

5 Kommentare »

  1. 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*

    Kommentar von Sebastian — 25. April 2008 @ 17:59

  2. 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

    Kommentar von Individuell — 22. August 2008 @ 10:06

  3. 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"].”)”;
    }

    Kommentar von Michael — 12. Juni 2009 @ 12:28

  4. danke für den Post! Hat mir geholfen..

    schönen Gruß – alex

    Kommentar von alex — 18. September 2009 @ 10:08

  5. [...] String in ein Array wandeln und dann mit einer for-next-Schlaufe ausgeben kann. Ebenso fand ich bei Laut und Klar eine Anleitung, wie man mit PHP die Exif-Daten eines Digitalbildes auslesen kann. Funktioniert bestens! Daneben [...]

    Pingback von Bilder veröffentlichen ohne fremde Dienste » Von Roman Hanhart » ubuntublog.ch — 4. März 2010 @ 12:17

RSS-Feed für Kommentare zu diesem Beitrag. TrackBack-URI

Einen Kommentar hinterlassen

läuft stressfrei mit WordPress ( WordPress.de )