fieldtronics/phpexiftool

此软件包最新版本(dev-master)没有提供许可信息。

PHP Exiftool 的 Exiftool 驱动程序

dev-master 2018-05-24 09:12 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:56:54 UTC


README

Build Status

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 许可证