echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />\n";
$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
foreach ($section as $name => $val) {
echo "$key.$name: $val<br />\n";
}
}
意志出力
test1.jpg:
No header data found.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1
ソースhttp://php.net/manual/en/function.exif-read-data.php
FileDateTimeはおそらくファイルの変更時刻のみを取得し、おそらくシステムコマンドです。 写真のデバイスには常に「撮影日」フィールドがあり、取得する必要があります。上記の機能は、修正されていない写真でも(自分のニーズに合わせて)完璧に機能します。 Photoshopで編集して保存し直すと、この関数は「日付変更」フィールドを使用します。ファイルには正しい時刻の "date taken"フィールドがまだあるので、確実に取得することができます。 – Dima
もう一度確認してください...私は1000枚以上の写真をテストしています...典型的な例は 'Datetime、DateTimeOriginal、DateTimeDigitized'のみの' SAMSUNG GT-N7000'携帯電話です。 exif情報は一部のデバイスで簡単にオンに切り替えることができます – Baba