小智 6
这很可能是由于安全修复程序的回归导致ext/exif扩展在"未知"格式的情况下停止解析.
这应该在7.x分支(7.0.10和7.1.0 Beta 1)中修复,应该包含对它们的适当修复,虽然它没有合并到5.x分支,它可能会找到它的方式.
如果你想要一个补丁(应该很容易转换成5.x),那么我在这里提交了它:http://git.php.net/? p = php_src.git; a = commit; h = aabcb5481d9e717df77192dab2894468b9fc63b4
以下是关于ext/exif如何工作以及出错的一些背景知识:
在内部,当我们解析exif数据时,它将读出规范提供的标准exif标记,但是某些格式具有某些自定义标记.这些通常也被解析,但是ext/exif是有限的,因为我们(仅在包括7.1的稳定分支中)支持具有扩展标记的6种格式(每种格式的列表被烘焙到扩展中).这是回归的来源.解析EXIF数据时,按以下顺序完成:
安全修复程序导致回归,因为您可以制作假签名并在内部绕过它,这可能导致无效读取.如果在我们知道的格式的签名列表中签名不匹配,修复程序将保释解析,从而停止解析而不返回缩略图等数据,导致exif_thumbnail()基本上不能用于除6之外的任何其他格式.
当前在7.x分支中的修复,恢复此行为并继续解析这些附加标记,因此我们不直接支持的那些函数和其他格式将再次起作用.
除此之外,在7.2中,我一直在增加对三星,松下和DJI特定标签的支持,我现在也在研究索尼的具体数据.我们在php.net上有一个错误报告,如果你有兴趣深入研究这个问题,那么它就会引发一切:https://bugs.php.net/bug.php?id = 72735.如果此补丁无法解决您的问题,我们非常欢迎您提交错误报告,以便我们可以考虑解决此问题.
我希望这对您有所帮助,并感谢您帮助PHP变得更大!