fieldtronics / phpexiftool
此软件包最新版本(dev-master)没有提供许可信息。
PHP Exiftool 的 Exiftool 驱动程序
dev-master
2018-05-24 09:12 UTC
Requires
- php: >=5.3.3
- doctrine/cache: ~1.0
- doctrine/collections: ~1.0
- monolog/monolog: ~1.3
- symfony/console: ~2.0
- symfony/process: ~2.0
Requires (Dev)
- jms/serializer: ~0.10
- sami/sami: ~1.0
- silex/silex: ~1.0
- symfony/css-selector: ~2.0
- symfony/dom-crawler: ~2.0
- symfony/finder: ~2.0
- symfony/yaml: ~2.0
Suggests
- jms/serializer: To serialize tags
- symfony/yaml: To serialize tags in Yaml format
This package is not auto-updated.
Last update: 2024-09-20 20:56:54 UTC
README
PHP Exiftool 是 Phil Harvey 的 Exiftool(见 http://www.sno.phy.queensu.ca/~phil/exiftool/)的对象驱动程序。Exiftool 是一个强大的基于 Perl 编写的元信息读取、写入和编辑的库和命令行实用程序。
FieldsPHPExiftool 提供了直观的对象接口来读取和写入元数据。
以下是一些示例。此驱动程序不适用于生产环境,仍在积极开发中。
安装
安装 PHP-Exiftool 的推荐方式是通过 Composer。
{
"require": {
"phpexiftool/phpexiftool": "~0.1.0"
}
}
使用方法
Exiftool 读取器
简单示例:如何读取文件元数据
<?php
require __DIR__ . '/vendor/autoload.php';
use Monolog\Logger;
use FieldsPHPExiftool\Reader;
use FieldsPHPExiftool\Driver\Value\ValueInterface;
$logger = new Logger('exiftool');
$reader = Reader::create($logger);
$metadatas = $reader->files(__FILE__)->first();
foreach ($metadatas as $metadata) {
if (ValueInterface::TYPE_BINARY === $metadata->getValue()->getType()) {
echo sprintf("\t--> Field %s has binary datas" . PHP_EOL, $metadata->getTag());
} else {
echo sprintf("\t--> Field %s has value(s) %s" . PHP_EOL, $metadata->getTag(), $metadata->getValue()->asString());
}
}
目录检查示例
use Monolog\Logger;
use FieldsPHPExiftool\Reader;
use FieldsPHPExiftool\Driver\Value\ValueInterface;
$logger = new Logger('exiftool');
$Reader = Reader::create($logger);
$Reader
->in(array('documents', '/Picture'))
->extensions(array('doc', 'jpg', 'cr2', 'dng'))
->exclude(array('test', 'tmp'))
->followSymLinks();
foreach ($Reader as $MetaDatas) {
echo "found file " . $MetaDatas->getFile() . "\n";
foreach ($MetaDatas as $metadata) {
if (ValueInterface::TYPE_BINARY === $metadata->getValue()->getType()) {
echo sprintf("\t--> Field %s has binary datas" . PHP_EOL, $metadata->getTag());
} else {
echo sprintf("\t--> Field %s has value(s) %s" . PHP_EOL, $metadata->getTag(), $metadata->getValue()->asString());
}
}
}
Exiftool 写入器
<?php
require __DIR__ . '/vendor/autoload.php';
use Monolog\Logger;
use FieldsPHPExiftool\Writer;
use FieldsPHPExiftool\Driver\Metadata\Metadata;
use FieldsPHPExiftool\Driver\Metadata\MetadataBag;
use FieldsPHPExiftool\Driver\Tag\IPTC\ObjectName;
use FieldsPHPExiftool\Driver\Value\Mono;
$logger = new Logger('exiftool');
$Writer = Writer::create($logger);
$bag = new MetadataBag();
$bag->add(new Metadata(new ObjectName(), new Mono('Pretty cool subject')));
$Writer->write('image.jpg', $bag);
许可证
项目许可协议为 MIT 许可证