【问题标题】:PHP exif_read_data return only specific tagsPHP exif_read_data 仅返回特定标签
【发布时间】:2021-06-08 21:29:49
【问题描述】:

有没有办法让 exif_read_data 只返回指定的值?

当我在我的图像上运行它时,我会返回各种信息,甚至一些 UndefinedTag 会破坏我的 json。既然我只需要一些标签,比如 FileName、DateTime、Make、Model,我怎么能只请求这些标签?

$exif = exif_read_data('IMG_20210302_065231.jpg');
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
       echo "$key.$name: $val<br />\n";
    }
}

【问题讨论】:

    标签: php exif


    【解决方案1】:

    使用概述的 foreach 循环解决的第一种方法是获取所需数组的键并使用 in_array 执行检查。如果密钥在$allowedKeys 数组中,那么它将被包含在内。

    另一种方法是只对所有输出进行 json_encode,这样您就不会从 exif 函数中丢失数据。

    <?php
    
    $exif = exif_read_data('IMG_1591.jpeg');
    
    // Approach 1 (key found)
    $allowedKeys = ['FileName','FileDateTime'];
    $values = [];
    foreach($exif as $key => $val) {
      if(in_array($key, $allowedKeys)) {
         $values[] = [$key => $val];
      }
    }
    var_dump(json_encode($values));
    // Output: string(58) "[{"FileName":"IMG_1591.jpeg"},{"FileDateTime":1615402941}]"
    
    // Approach 2 (straight output to JSON)
    var_dump(json_encode($exif));
    // Output: string(274) "{"FileName":"IMG_1591.jpeg","FileDateTime":1615402941,"FileSize":192200,"FileType":2,"MimeType":"image\/jpeg","SectionsFound":"ANY_TAG, IFD0","COMPUTED":{"html":"width=\"1119\" height=\"839\"","Height":839,"Width":1119,"IsColor":1,"ByteOrderMotorola":0},"Software":"Google"}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-26
      • 2021-07-27
      • 1970-01-01
      相关资源
      最近更新 更多