PHP/(错误的)exif 数据/警告,怎么办?

标签 php exif

我正在编写一个小脚本,从图像中收集一些 exif 值...即创建日期、品牌和型号。

我注意到(特别是通过默认 iPhone 邮件应用程序邮寄的图像)exif 数据已被更改,这是一个已知问题(邮件应用程序在发送图像之前压缩图像,即使选择了“全尺寸” ).我正在寻找的值似乎在那里,尽管我在访问它们时收到 PHP 警告。实际获取值没有问题,但警告显然对我不起作用。

调用 ini_set('display_errors',0) 会隐藏警告,但对我来说似乎很草率。对于这种稍微好一点的场景,有什么方法可以忽略此脚本上的警告吗?

我最初的想法是将所有内容包装在 try/catch 中,但警告仍然显着显示在页面上。

我只是在使用标准的 exif_read_data() 函数,我认为外部库足以满足我的需求。

PHP:

if($_GET['i']) {
  $input = strtolower($_GET['i'] . ".jpg");
  if(file_exists($input)) {
    $exif = exif_read_data($input);
    foreach($exif as $key => $value) {
      if(!in_array($key, Array("DateTime","Make","Model"))) {
        unset($exif[$key]);
      }
    }
    ksort($exif);
    print_r($exif);
  }
}

警告:

警告:exif_read_data(trailmarker.jpg) [exif_read_data]:非法 IFD 大小:x00C4 + 2 + x3239*12 = x25B70 > x2B74 in C:\xampp\htdocs\exif\dumpfolder\exif.php on line 5

最佳答案

您可以使用 @ operator在不使用 display_errors 的情况下隐藏警告,即

$exif = @exif_read_data(..);

这比设置 display_errors 好因为它只会消除 exif 读取函数上的警告/错误,并且不会隐藏代码中其他可能的错误。

关于PHP/(错误的)exif 数据/警告,怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5184748/

相关文章:

python - 运行脚本时 KeyError : 'EXIF DateTimeOriginal'

PHP函数标志,怎么样?

javascript - 如何使用 javascript 或 jquery 禁用全键盘按键?

php - 读取 EXIF 并确定闪光灯是否闪光

java - 元数据提取器 java 不提取 exif 或 iptc

android - 支持库 ExifInterface 检查属性是否存在或获取所有属性

php - 加密和解密字符串 - PHP

php - 如何将文件图像存储到 mysql (Codeigniter)

php - 如何用 PHP 创建显示更多帖子?

.net-core - 如何使用 ImageSharp 清除图像的 EXIF 数据?