[PHP] EXIF-data weergeven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 17-09 15:43
Hoe kan ik in php de EXIF-data van een gemaakte foto opvragen. Ik ben op php.net de functie exif_read_data tegengekomen, maar daar kom ik niet helemaal uit. Ik wil namelijk de volgende gegevens van de foto hebben:

Datum foto
Merk Camera
Type Camera
Sluitertijd
Lensopening
Focuslengte
Belichtingstijd

Alleen hoe ga ik dit dan weergeven?? Ik begrijp uit het voorbeeld op php.net wel ongeveer hoe ik de gegevens opvraag, maar hoe krijg ik nu alleen de gegevens die ik hoorboven beschrijf op mijn pagina?? Wie kan mij helpen??

Ik ben niet zo sterk in php, dus heb wel wat geprobeerd, maar ik heb gewoon totaal geen idee hoe ik die specifieke gegevens op moet vragen.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

kleautviool schreef op zondag 27 maart 2005 @ 22:36:
Ik ben niet zo sterk in php, dus heb wel wat geprobeerd, maar ik heb gewoon totaal geen idee hoe ik die specifieke gegevens op moet vragen.
Wat heb je dan precies geprobeerd? Wat lukte daar niet mee? Kreeg je foutmeldingen? Zo ja, welke?

In de link die je geeft loopen ze over ALLE exif data heen die er wordt gevonden in een image. Het lijkt me vrij eenvouding een check te doen zodat je alleen de info krijgt die jij wilt.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je kan niet alleen die EXIF gegevens opvragen die je nodig hebt; je zal ze er zelf uit moeten filteren, zoals Creepy al zegt. Een simpel loopje met een stringvergelijking is alles wat je nodig hebt.
Sterker nog, je krijgt gewoon een associatief array, dat je aan kan roepen met $exif['FILE']['FileName'] en dergelijke.

[ Voor 24% gewijzigd door NMe op 27-03-2005 22:52 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Als je PHP zonder EXIF extensie hebt, kun je ook dit script gebruiken: http://www.rjk-hosting.co.uk/programs/prog.php?id=4 .

Acties:
  • 0 Henk 'm!

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 17-09 15:43
Om even op mijn topic terug te komen, het is nog steeds niet helemaal gelukt, maar ik ben wel een stapje verder :)
Ik heb nu de array m.b.v. print_r weergegeven, en daarbij krijg ik o.a. de volgende output:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
    [EXIF] => Array
        (
            [ExposureTime] => 1/60
            [FNumber] => 56/10
            [ExifVersion] => 0220
            [DateTimeOriginal] => 2005:03:20 17:26:28
            [DateTimeDigitized] => 2005:03:20 17:26:28
            [ComponentsConfiguration] => 
            [CompressedBitsPerPixel] => 5/1
            [ShutterSpeedValue] => 189/32
            [ApertureValue] => 159/32
            [ExposureBiasValue] => 0/3
            [MaxApertureValue] => 95/32
            [MeteringMode] => 2
            [Flash] => 25
            [FocalLength] => 5800/1000
            [UserComment] => 
            [FlashPixVersion] => 0100
            [ColorSpace] => 1
            [ExifImageWidth] => 1024
            [ExifImageLength] => 768
            [InteroperabilityOffset] => 1084
            [FocalPlaneXResolution] => 2048000/224
            [FocalPlaneYResolution] => 1536000/168
            [FocalPlaneResolutionUnit] => 2
            [SensingMethod] => 2
            [FileSource] => 
            [CustomRendered] => 0
            [ExposureMode] => 0
            [WhiteBalance] => 0
            [DigitalZoomRatio] => 2048/2048
            [SceneCaptureType] => 0
        )
?>

En ik zou dus de volgende variabele weer willen geven:
  • ApertureFNumber
  • ExifImageWidth
  • ExifImageLength
  • Make
  • Model
  • DateTimeOriginal
  • ExposureTime
Alleen hoe geef ik dit weer??
Ik heb de onderstaande manier allemaal al geprobeerd, maar geen 1 van deze werken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
<?php
$exif = exif_read_data('http://www.maurice-k.com/fotos/r_flower.jpg', 0, true);

// Poging 1, werkt niet. Geeft geen output
echo($exif[ApertureFNumber]);

// Poging 2, werkt ook niet. Geeft ook geen output
echo($exif[EXIF][ApertureFNumber]);

// Poging 3, werkt ook niet. Geeft ook geen output
echo($exif[EXIF.ApertureFNumber]);
?>

Iemand toevallig een idee hoe het wél moet???

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je poging 2 zou moeten kloppen, bijna:
PHP:
1
echo $exif['EXIF']['ApertureFNumber'];

Ware het niet dat in de hele array de index ApertureFNumber helemaal niet voorkomt! :P Je kan FNumber gebruiken, of ApertureValue, afhankelijk van wat je nodig hebt.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 17-09 15:43
Damn ik had die haakjes alleen zo geprobeerd $exif['ApertureFNumber'] damn :X

Maar in ieder geval bedankt.
En dat sommige waard eniet onder de EXIF array vallen weet ik ;). Dit was meer als voorbeeld.
Maar in ieder geval erg bedankt!

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

kleautviool schreef op woensdag 30 maart 2005 @ 22:50:
Damn ik had die haakjes alleen zo geprobeerd $exif['ApertureFNumber'] damn :X

Maar in ieder geval bedankt.
En dat sommige waard eniet onder de EXIF array vallen weet ik ;). Dit was meer als voorbeeld.
Maar in ieder geval erg bedankt!
Wel een voorbeeld dat nooit kan werken natuurlijk, nogal wiedes dat je dan geen uitvoer krijgt. :+ Verder komen meer variabelen die je graag wil hebben niet voor in die EXIF data.
Overigens zouden je 3 pogingen alledrie een notice moeten geven, mits je op een nette manier zou testen. Wen het je aan om tijdens het programmeren error_reporting(E_ALL) boven je script te zetten. Op die manier had je hier alvast een notice moeten krijgen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
En indien je niet krijgt hierna even ini_set("display_errors", 1); om te zorgen dat foutmeldingen wel getoont worden.
Pagina: 1