Как получить теги из метаданных изображения php?

Я пытаюсь получить теги из метаданных изображения. Я использую следующую функцию для получения метаданных, но теги находятся в массиве. Я не знаю, как распечатать все теги.

Функция:

<?php
function cameraUsed($imagePath) {
    if ((isset($imagePath)) and (file_exists($imagePath))) {
      $exif_ifd0 = read_exif_data($imagePath ,'IFD0' ,0);       
      $exif_exif = read_exif_data($imagePath ,'EXIF' ,0);
      $notFound = "Unavailable";
      if (@array_key_exists('Make', $exif_ifd0)) {
        $camMake = $exif_ifd0['Make'];
      } else { $camMake = $notFound; }
      if (@array_key_exists('Model', $exif_ifd0)) {
        $camModel = $exif_ifd0['Model'];
      } else { $camModel = $notFound; }
      if (@array_key_exists('ExposureTime', $exif_ifd0)) {
        $camExposure = $exif_ifd0['ExposureTime'];
      } else { $camExposure = $notFound; }
      if (@array_key_exists('ApertureFNumber', $exif_ifd0['COMPUTED'])) {
        $camAperture = $exif_ifd0['COMPUTED']['ApertureFNumber'];
      } else { $camAperture = $notFound; }
      if (@array_key_exists('DateTime', $exif_ifd0)) {
        $camDate = $exif_ifd0['DateTime'];
      } else { $camDate = $notFound; }
      if (@array_key_exists('ISOSpeedRatings',$exif_exif)) {
        $camIso = $exif_exif['ISOSpeedRatings'];
      } else { $camIso = $notFound; }     
      if (@array_key_exists('UndefinedTag:0xA434',$exif_exif)) {
        $test = $exif_exif['UndefinedTag:0xA434'];
      } else { $test = $notFound; }     

      if (@array_key_exists('UndefinedTag:0xA434',$exif_exif)) {
        $test = $exif_exif['UndefinedTag:0xA434'];
      } else { $test = $notFound; }

      if (@array_key_exists('UndefinedTag:0xA432',$exif_exif)) {
        $tags = $exif_exif['UndefinedTag:0xA432'];
      } else { $tags = $notFound; }

      $return = array();
      $return['make'] = $camMake;
      $return['model'] = $camModel;
      $return['exposure'] = $camExposure;
      $return['aperture'] = $camAperture;
      $return['date'] = $camDate;
      $return['iso'] = $camIso;
      $return['tags'] = $tags;
      return $return;

    } else {
      return false; 
    } 
}

?>

Вот результат exif_read_data: Как получить теги из метаданных изображения php? Я пробовал:

  if (@array_key_exists('UndefinedTag:0xA432',$exif_exif)) {
    $tags = $exif_exif['UndefinedTag:0xA432'];
  } else { $tags = $notFound; }

Но при попытке распечатать ничего нет.

Данные EXIF ​​выглядят как объект, поэтому просто введите его тип в массив: $exif_exif = (array)read_exif_data($imagePath ,'EXIF' ,0);, чтобы оставить свой код таким же, или получить доступ к значениям с использованием объектной нотации, например. $camMake = $exif_ifd0.Make;

Nick 28.10.2018 12:41
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
86
1

Ответы 1

Вы можете использовать библиотеку из http://image.intervention.io/, это бесплатно, и с ней вы получаете exif-данные изображения.

// read all existing data into an array
$data = Image::make('public/foo.jpg')->exif ();

// read model of the camera
$name = Image::make('public/foo.jpg')->exif ('Model');

Надеюсь, это поможет вам :)

Другие вопросы по теме