【问题标题】:PHP - corrupt exif data error with Fulifilm photosPHP - Fulifilm 照片损坏的 exif 数据错误
【发布时间】: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 解析器...或切换虚拟主机的困境。

标签: php gps exif


【解决方案1】:

我的富士相机也有同样的问题,但我想我已经找到了解决方案,我在这里提出了一个 PHP 错误报告:https://bugs.php.net/bug.php?id=66443

如果您可以从源代码编译您自己的 PHP(或说服您的虚拟主机为您这样做),这很容易解决。

【讨论】:

  • 我的 Sony A6000 遇到了同样的问题。为伊恩的帮助干杯,很高兴知道我不是唯一的人。
猜你喜欢
  • 2021-11-27
  • 2015-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-11
  • 2014-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多