【发布时间】:2012-07-20 17:32:11
【问题描述】:
PHP 版本 5.3.10
简而言之,我无法从我的照片中获取所有 EXIF 数据 - 它说它们已损坏 - 但另一个 PHP 可以获取所有数据,所以我确信这是可能的,但我不知道不知道怎么做。现在来看更详细的版本...
我有一个脚本只是为了从我的相机中查看给定 JPG 文件的所有 EXIF 数据。它 看起来像这样……
$exif_data = exif_read_data ('TEST.JPG', 0, TRUE);
foreach ($exif_data as $key => $section) {
foreach ($section as $name => $val) {
echo "$key.$name: $val<br />\n";
}
}
这对我的上一部相机来说效果很好。但是,当我使用新的 FujiFilm 相机对任何 JPG 运行它时,我会在上面列表的第一行中收到此错误消息..
Warning: exif_thumbnail(TEST.JPG) [exif_read_data]: corrupt EXIF header: maximum directory nesting level reached in (script name) on line (relevant line)
然后它会输出一个不完整的 EXIF 数据列表。
我猜对此的第一反应是“你的文件已损坏”,但如果我将其上传到http://exifdata.com/index.php,那么它会列出所有 EXIF 数据(包括我真正感兴趣的 GPS 数据) .该网站显然也在 PHP 上运行,所以我建议确实可以使用 PHP 从那里获取 GPS 数据。
我尝试在谷歌上搜索错误消息,但得到的只是一些 2005 年或 2007 年的旧 PHP 错误,以及一个没有人回答的类似 stackoverflow 线程 - Issues extracting exif data for exif 2.3 using PHP Version 5.2.9。
那么……有什么想法吗?
【问题讨论】:
-
如果其他 php 版本可以,则检查特定 PHP 使用的 libexif 版本。
-
我不认为我真的可以要求我的虚拟主机安装不同的版本。我只能说,根据我发布的链接,5.2.9 也不起作用。 exifdata.com 网站上没有关于他们是谁的信息,所以我无法联系他们 - 该 URL 上的 whois 也是空白。
-
email 给 exif 的人会帮不上忙 - 这是您的 PHP 版本使用的任何 exif 库。如果您无法更改虚拟主机上的任何内容,那么您将陷入构建自己的 exif 解析器...或切换虚拟主机的困境。