Download the PHP package codewiser/exiftool without Composer

On this page you can find all versions of the php package codewiser/exiftool. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package exiftool

IPTC metadata

Using Exiftool. Using IPTC specification.

This lightweight package based on machine-readable specification of IPTC provided by iptc.org.

As specification describes how exiftool exports/imports metadata, describes every attribute and every structure — this package uses json-version of specification as a framework.

This package provides object-oriented programmatic interface to work with iptc attributes as objects.

This package provides some helpers for Laravel.

Known issues

IPTC specification describes locationCreated as single element, but Exiftool counts it as a bag and requires array of Location structures.

IPTC specification describes ProductWGtin.identifiers as multiple element (array), but Exiftool requires single element.

Exiftool doesnt import GPSAltitudeRef as GPSAltitude may be positive or negative — this is enough.

This library overrides IPTC specification, making locationCreated multiple and ProductWGtin.identifiers single. And ignores GPSAltitudeRef.

Configuration

Construct Exiftool with path to exiftool binary and, optionally, with path to specification file.

Read metadata

Embed metadata

Method returns Process object for you to inspect possible error output.

Clear metadata

Fake or empty metadata

You may create empty metadata collection and fill it with fake values:

Properties

Whole collection and every attribute are JsonSerializable: this method exports metadata to json format.

Whole collection and every single attribute may be filled with json data:

Plain

Plain attribute is Stringable and has toString method, that is used to get attribute scalar value.

DateTime

DateTime attribute is Stringable and has toDateTime method, that is used to get DateTimeInterface value.

AltLang

AltLang attribute keeps array of strings, each for different locale. Default current locale is en. You may change it:

When importing data, AltLang stores default value to current locale. When exporting, AltLang current locale value will be embedded as default.

If exiftool export is:

[
    "AltTextAccessibility" => "Value 1",
    "AltTextAccessibility-es" => "Value 2",
    "AltTextAccessibility-de" => "Value 3",
]

and current locale is `en` — the result will be:

[
    "en" => "Value 1",
    "es" => "Value 2",
    "de" => "Value 3",
]

AltLang attribute is Stringable and has toString method, that is used to get attribute value in current locale.

It has toArray method te get all localized values.

It implements ArrayAccess, so you can access values using locale as key.

When your backend-end responds with metadata to a front-end, the AltLang attribute responds as array. Sometimes you may want to collapse AltLang values to a string with current locale (or best matched) value. To do that instruct attribute to collapse values before respond.

Structure

Structure is a collection of attributes. All structures well documented with all their attributes. Every attribute may be any of types.

To add structure fill it with a json:

Or use factory to create empty object:

Multiple

Multiple attribute is array of other attributes of any type. It is Iterator, ArrayAccess and Countable, so you may handle it as true array.

Of course, Multiple may consist of structures:

Print Conv

Read https://exiftool.org/under.html

Without enabling $exiftool->printConv() all values is human-readable. For example, GPSLatitude may has value 45 deg 20' 11.00".

If you call $exiftool->printConv() before importing/exporting IPTC metadata, you should use dirty values. For example, GPSLatitude may has value 45.3363888888889.

This is very important in context of enum attributes — that must use values from limited list. Exiftool will reject value if it is not from a list.

Read more below.

Enum values

Some attributes, such as dataMining, modelReleaseStatus, rbShape and some others, require their values from a limited list.

For example, Exiftool internally keeps dataMining values as DMI-UNSPECIFIED, DMI-ALLOWED etc., but exports it as Unspecified - no prohibition defined, Allowed etc. Conversely, you should import this attribute with values Unspecified - no prohibition defined, Allowed etc.

However, with enabled $exiftool->printConv() we will export/import it with keys (DMI-UNSPECIFIED, DMI-ALLOWED etc.) instead of values.

You may inspect attribute specification for it enum values:

For example, this is enum values for modelReleaseStatus attribute:

If you call enum() on attribute without enabling printConv, you will gat values of such array. If you call enum() on attribute with enabled printConv, you will gat keys of such array.

Controlled Vocabularies

Some attributes, such as sceneCodes, subjectCodes and some others, should use values from external controlled vocabularies, called NewsCodes.

Read more


All versions of exiftool with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
ext-intl Version *
symfony/process Version ^7.1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package codewiser/exiftool contains the following files

Loading the files please wait ....