П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3513 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6118 раз(а).

Учебник HTML.
Просмотров 3272 раз(а).

Руководство по PHP5.
Просмотров 5492 раз(а).

Хостинг через призму DNS.
Просмотров 4134 раз(а).

Подборка текстов стандартных документов.
Просмотров 55769 раз(а).

Учебник PHP - Самоучитель
Просмотров 3086 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5661 раз(а).

Внешние атаки...
Просмотров 3836 раз(а).

Учебник PHP.
Просмотров 2822 раз(а).

SSI в примерах.
Просмотров 37459 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Учебник РНР
Назад Вперёд

exif_read_data

(PHP 4 >= 4.2.0)

exif_read_data - читает шапки EXIF из JPEG или TIFF.

Описание

array exif_read_data (string filename [, string sections [, bool arrays [, bool thumbnail]]])

Функция exif_read_data() читает шапки/headers EXIF из файла изображения JPEG или TIFF. Она возвращает ассоциативный массив, где индексами являются header-имена, а значениями - значения, ассоциированные с этими headers. Если никакие данные не могут быть возвращены, возвращается FALSE.

filename это имя читаемого файла. Это не может быть url.

sections разделённый запятыми список разделов, который должен присутствовать в файле, чтобы производить результирующий массив.
FILE FileName, FileSize, FileDateTime, SectionsFound
COMPUTED html, Width, Height, IsColor и ещё что-нибудь, если доступно.
ANY_TAG Любая информация, имеющая тэг, например, IFD0, EXIF, ...
IFD0 Все данные с тэгами IFD0. В нормальных файлах изображений содержит размер изображения и т.д.
THUMBNAILФайл, содержащий уменьшенную версию изображения/thumbnail, если имеется второй IFD. Вся тэговая информация о внедрённом thumbnail хранится в этом разделе.
COMMENT Шапки комментария JPEG-изображений.
EXIFРаздел EXIF это подраздел IFD0. Он содержит более детализированную информацию об изображении. Большинство этих вхождений относятся к цифровой камере.

arrays специфицирует, становится или нет каждый раздел массивом. Разделы FILE, COMPUTED и THUMBNAIL всегда становятся массивами, мак как они могут содержать значения, имена которых конфликтуют с другими разделами.

thumbnail читать или нет само thumbnail, а не только тэгированные данные.

Примечание: делается попытка представить шапки еxif в JPEG/TIFF-изображениях, генерируемых цифровыми камерами, но, к сожалению, каждая цифровая камера по своему тэгирует свои изображения, поэтому вы не всегда можете полагаться на специфические шапки Exif.

Пример 1. exif_read_data()
<?php
echo "test1.jpg:<br>\n";
$exif = exif_read_data ('tests/test1.jpg','IFD0');
echo $exif===false ? "No header data found.<br>\n" : "Image contains headers<br>";
$exif = exif_read_data ('tests/test2.jpg',0,true);
echo "test2.jpg:<br>\n";
foreach($exif as $key=>$section) {
foreach($section as $name=>$val) {
   echo "$key.$name: $val<br>\n";
}
}?>

Первый вызов терпит неудачу, поскольку изображение не имеет header-информации.
test1.jpg:
No header data found.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end

Примечание: если изображение содержит IFD0-данные, то COMPUTED содержит вхождение ByteOrderMotorola, которое равно 0 для байтового порядка little-endian (intel) и 1 - для big-endian (motorola). Это было введено в PHP 4.3.

Если Exif header содержит Copyright note, они сами содержат два значения. В качестве разрешения несоответствия стандарту Exif 2.10, раздел COMPUTED возвращает и Copyright.Photographer, и Copyright.Editor, в то время как раздел IFD0 содержит байтовый массив с символом NULL, который разделяет оба вхождения. Либо только первое вхождение, если тип данных имеет неправильный формат (нормальное поведение Exif). COMPUTED будет также содержать вхождение Copyright, которое будет либо оригинальной copyright-строкой, либо списком разделённых запятыми photo и editor copyright.

Примечание: с тэгом UserComment существует та же проблема, что и с тэгом Copyright. Он может хранить два значения: первое - для используемой кодировки, а второе - само значение. То есть раздел IFD содержит только кодировку или массив байтов. Раздел COMPUTED будет хранить вхождения UserCommentEncoding и UserComment. Вхождение UserComment доступно в обоих вариантах, поэтому предпочтительнее использовать его, а не значение в разделе IFD0.

Если пользовательский комментарий использует кодировку Unicode или JIS, а модуль mbstring доступен, эта кодировка автоматически изменяется в соответствии с установками exif ini. Это было введено в PHP 4.3.

Примечание: Height и Width вычисляются тем же способом, что и в getimagesize(), поэтому их значения обязаны не быть частью любого из возвращаемых header. Также html это текстовая строка height/width, используемая внутри нормального HTML.

Примечание: начиная с PHP 4.3, эта функция может читать все внедрённые IFD-данные, включая массивы (возвращаемые как таковые). Также и размер внедрённого thumbnail возвращается в подмассиве THUMBNAIL, и функцияexif_read_data() может возвращать thumbnails в формате TIFF. И, наконец, теперь нет ограничения на максимальный размер возвращаемых значений (если не достигнут предельный размер доступной памяти).

Примечание: эта функция доступна только в PHP 4, скомпилированном с опцией
--enable-exif. Её функциональность и поведение изменилось в PHP 4.2. Предыдущие версии очень нестабильны.

Начиная с PHP 4.3, пользовательский комментарий может автоматически изменить кодировку, если PHP 4 был скомпилирован с опцией --enable-mbstring.

Эта функция не требует библиотеки GD image.

См. также exif_thumbnail() и getimagesize().


Назад Оглавление Вперёд
exif_imagetype Вверх exif_thumbnail


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту: