2010-06-11 2 views
0

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

$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?

ответ

1

Beats меня, но почему вы не нашли для себя:

$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

Спасибо за подсказку. Я пишу рекурсивную функцию, чтобы распечатать различия между 2 массивами, чтобы помочь выявить различия между двумя большими многомерными массивами. Я опубликую результаты, как только я смогу найти разницу между 2 jpeg заголовками. – DarwinIcesurfer