Die XMP4PHP Erweiterung für PHP stellt eine Schnittstelle zum Lesen von XMP (Extensible Metadata Platform) Metadaten aus und Schreiben von Metadaten in (Binär-)Dateien zur Verfügung.
Die Erweiterung basiert auf der Bibliothek exempi , die wiederum auf dem XMP Toolkit von Adobe aufsetzt.
In der ersten Version unterstützt die Erweiterung lediglich das Lesen und Schreiben von Metadaten, nicht jedoch deren Verarbeitung. Hierzu können jedoch die DOM -Funktionen von PHP verwendet werden. In folgenden Version sollen auch die Funktionen des XMP Toolkits zur Verfügung gestellt werden, mit deren Hilfe die Metadaten bearbeitet werden können.
Eine aktuelle Version von XMP4PHP steht auf der zentralen Download-Seite zur Verfügung.
Die von der Erweiterung zur Verfügung gestellten Funktionen werden im folgenden kurz beschrieben.
Die Funktion xmp_read erwartet als Argument den Namen einer Datei, aus der die Metadaten gelesen werden sollen. Sie liefert als Ergebnis die Metadaten in Form von RDF (XML) zurück. Im Fehlerfall wird ein Wert kleiner als eins zurückgegeben. Die Bedeutung der einzelnen Werte kann der folgenden Tabelle entnommen werden.
| Rückgabewert |
Beschreibung |
|---|---|
| false | Die Übergabe der Parameter war nicht korrekt. |
| -1 | Die exempi Bilbiothek konnte nicht korrekt initialisiert werden. |
| -2 | Die übergebene Datei konnte nicht zum lesen geöffnet werden. |
| -3 | In der Datei sind keine Metadaten vorhanden. |
| -4 | Es steht nicht genug Speicher für die Metadaten zur Verfügung. |
| -5 | Die Serialisierung der Metadaten durch die exempi Bibliothek ist fehlgeschlagen. |
| -6 | Der serialisierten Metadaten konnte nicht in einen String umgewandelt werden. |
Die weiteren Funktionsparameter sind optional und erwarten eine Bitmaske entsprechend den Tabellen am unteren Ende dieser Seite.
Die Funktion xmp_write erwartet als Argumente den Namen der Datei, in die die Metadaten geschrieben werden sollen und die Metadaten in Form von RDF (XML). Wichtig dabei ist, das die Metadaten keine Informationen zur XML-Version enthalten dürfen. Konnten die Metadaten erfolgreich geschrieben werden, liefert die Funktion true zurück. Im Fehlerfall wird ein Wert kleiner als eins zurückgegeben. Die Bedeutung der einzelnen Werte kann der folgenden Tabelle entnommen werden.
| Rückgabewert |
Beschreibung |
|---|---|
| false | Die Übergabe der Parameter war nicht korrekt. |
| -1 | Die exempi Bilbiothek konnte nicht korrekt initialisiert werden. |
| -2 | Die übergebenen XML-Daten konnten nicht interpretiert / geparst werden. |
| -3 | Die Datei konnte nicht zum Schreiben göffnet werden. |
| -4 | Die exempi Bibliothek unterstützt das Schreiben von Metadaten in diesen Dateityp nicht. |
Die Funktion xmp_can_write erwartet als Argumente den Namen der Datei, für die geprüft werden soll, ob die mit dem zweiten Argument übergebenen Metadaten, von der Bibliothek in die Datei geschrieben werden können. Wichtig dabei ist, das die Metadaten keine Informationen zur XML-Version enthalten dürfen. Können die Metadaten entsprechend der durch die Parameter drei bis fünf übergebenen Masken geschrieben werden, liefert die Funktion true zurück. Im Fehlerfall wird ein Wert kleiner als eins zurückgegeben. Die Bedeutung der einzelnen Werte kann der folgenden Tabelle entnommen werden.
| Rückgabewert |
Beschreibung |
|---|---|
| false | Die Übergabe der Parameter war nicht korrekt. |
| -1 | Die exempi Bilbiothek konnte nicht korrekt initialisiert werden. |
| -2 | Die übergebenen XML-Daten konnten nicht interpretiert / geparst werden. |
| -3 | Die Datei konnte nicht zum Schreiben göffnet werden. |
| Wert |
Beschreibung |
|---|---|
| 0 | Keine besonderen Optionen. |
| 1 | Zum Lesen öffnen. |
| 2 | Zum Lesen und Schreiben öffnen. |
| 4 | Zugriff nur auf die XMP-Inhalte der Datei. |
| 8 | Unbekannt. |
| 16 | Strikte Prüfung. |
| 32 | Intelligenten Handler verwenden. |
| 64 | XMP-Pakete scannen. |
| 128 | Anzahl gescannter XMP-Pakete limitieren. |
| 256 | Im Hintergrund öffnen. |
| Wert |
Beschreibung |
|---|---|
| 1 | Keinen Paket-Wrapper verwenden. |
| 2 | Paket ist nur lesbar. |
| 4 | Kompaktes Format verwenden. |
| 8 | Bereich für Vorschau verwenden. |
| 16 | Exakte Paketlänge. |
| 32 | Alias-Kommentare schreiben. |
| 64 | Keinerleit Formatierung verwenden. |
| Wert |
Beschreibung |
|---|---|
| 0 | UTF-8 |
| 1 | UTF-16 big endian |
| 2 | UTF-16 little endian |
| 4 | UTF-32 big endian |
| 8 | UTF-32 little endian |
Beim Testen der exempi Bibliothek und des XMP Toolkit von Adobe in Version 4.1.1 sind mir folgende Dinge aufgefallen.