Получение рейтинга фото "звездочек" с помощью PHP

Я пытаюсь извлечь фото звездный рейтинг из файлов.jpg, используя php-код. Моя цель - показать изображения с самым высоким рейтингом как часть слайд-шоу. Я обнаружил, что с помощью PHP_JPEG_Metadata_Toolkit_1.11 я могу получить оценку файла, если оценка установлена ​​в Vista (щелкните правой кнопкой мыши -> Свойства -> Детали -> Установить оценку, нажав звездочки), прочитав массив, возвращаемый Метаданные_Toolkit

$exif = get_EXIF_JPEG( $photodir . "/" . $filename );
$rating = $exif[0][18246]['Data'][0];

Однако, если я установлю рейтинг с помощью Adobe Bridge, я могу увидеть "звезды" в Vista, но
$exif[0][18246]['Data'][0] возвращает нулевое значение

Доступен ли код PHP для чтения оценок, применяемых как Windows Vista, так и Adobe Bridge?

2 ответа

Решение

Я обнаружил, что Adobe Bridge хранит рейтинг в другом месте в файле JPEG, чем Vista. Подробности см. В сообщении " Предлагаемый код php", чтобы прочитать рейтинг файлов, установленный Adobe Bridge CS3.

Бьет меня, но почему бы тебе не выяснить для себя:

$exif = get_EXIF_JPEG( $photodir . "/" . $filename );
print_r($exif);

Это напечатает содержимое $exifчто, я думаю, будет большим, но у тебя есть время, верно? (Просмотрите источник в своем веб-браузере, чтобы увидеть, что он правильно отформатирован.) Выполните детализацию, чтобы найти ключ 0, затем ключ 18246, затем ключ Data, затем ключ 0. Это тот, который вы уже нашли. Теперь найдите, где может быть другой рейтинг. Надеюсь, это не так сложно найти. Когда вы найдете его, обратите внимание на путь к нему. Тогда, чтобы получить это:

// This is your Vista rating
$rating = $exif[0][18246]['Data'][0];
if ($rating == null) {
    // no Vista rating, so get the Bridge rating
    $rating = $exif[...fill in this path...];
}
Другие вопросы по тегам