This project is a fork of phpexiftool/phpexiftool.
PHP Exiftool is an Object Oriented driver for Phil Harvey's Exiftool (see http://www.sno.phy.queensu.ca/~phil/exiftool/). Exiftool is a powerful library and command line utility for reading, writing and editing meta information written in Perl.
PHPExiftool provides an intuitive object oriented interface to read and write metadata.
You will find some example below. This driver is not suitable for production, it is still under heavy development.
The recommended way to install PHP-Exiftool is through composer.
{
"require": {
"alchemy/phpexiftool": "^0.5.0"
}
}A simple example : how to read metadata from a file:
<?phprequire__DIR__ . '/vendor/autoload.php';
useMonolog\Logger;
usePHPExiftool\Reader;
usePHPExiftool\Driver\Value\ValueInterface;
$logger = newLogger('exiftool');
$reader = Reader::create($logger);
$metadataBag = $reader->files(__FILE__)->first();
foreach ($metadataBagas$metadata) {
if (ValueInterface::TYPE_BINARY === $metadata->getValue()->getType()) {
echosprintf("\t--> Field %s has binary data" . PHP_EOL, $metadata->getTag());
} else {
echosprintf("\t--> Field %s has value(s) %s" . PHP_EOL, $metadata->getTag(), $metadata->getValue()->asString());
}
}An example with directory inspection :
useMonolog\Logger;
usePHPExiftool\Reader;
usePHPExiftool\Driver\Value\ValueInterface;
$logger = newLogger('exiftool');
$reader = Reader::create($logger);
$reader
->in(array('documents', '/Picture'))
->extensions(array('doc', 'jpg', 'cr2', 'dng'))
->exclude(array('test', 'tmp'))
->followSymLinks();
foreach ($readeras$data) {
echo"found file " . $data->getFile() . PHP_EOL;
foreach ($dataas$metadata) {
if (ValueInterface::TYPE_BINARY === $metadata->getValue()->getType()) {
echosprintf("\t--> Field %s has binary data" . PHP_EOL, $metadata->getTag());
} else {
echosprintf("\t--> Field %s has value(s) %s" . PHP_EOL, $metadata->getTag(), $metadata->getValue()->asString());
}
}
}<?phprequire__DIR__ . '/vendor/autoload.php';
useMonolog\Logger;
usePHPExiftool\Writer;
usePHPExiftool\Driver\Metadata\Metadata;
usePHPExiftool\Driver\Metadata\MetadataBag;
usePHPExiftool\Driver\Tag\IPTC\ObjectName;
usePHPExiftool\Driver\Value\Mono;
$logger = newLogger('exiftool');
$writer = Writer::create($logger);
$bag = newMetadataBag();
$bag->add(newMetadata(newObjectName(), newMono('Pretty cool subject')));
$writer->write('image.jpg', $bag);Project licensed under the MIT License
