PHP-损坏的exif数据错误与富力电影的照片


PHP - corrupt exif data error with Fulifilm photos

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";
    }
}

这对我上一台相机来说效果很好。然而,当我用我的新富士胶片相机的任何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线程,但没有人回答——使用PHP 5.2.9版本为exif 2.3提取exif数据的问题。

所以。。。有什么想法吗?

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

如果你可以从源代码编译自己的PHP(或者说服你的网络主机为你这样做),这是一个简单的解决方案。