Получение фото «звездного» рейтинга с помощью PHP - PullRequest
0 голосов
/ 11 июня 2010

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

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

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

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

Ответы [ 2 ]

1 голос
/ 11 июня 2010

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

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

Это напечатает содержимое $exif, которое, я думаю, будет большим, но у вас есть время, верно? (Просмотрите источник в своем веб-браузере, чтобы увидеть, что он правильно отформатирован.) Выполните детализацию, чтобы найти ключ 0, затем ключ 18246, затем ключ данных, затем ключ 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...];
}
0 голосов
/ 16 июня 2010

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

...