Signatur
Beschreibung
fdf_get_opt() gehört zur FDF-Erweiterung (Forms Data Format) und ermöglicht den Zugriff auf die Optionsliste von Formularfeldern wie List Boxes oder Combo Boxes in PDF-Dokumenten. Jede Option besteht aus einem sichtbaren Label und einem internen Exportwert; fdf_get_opt() liefert beides als Array zurück.
Der Parameter element ist ein nullbasierter Index, der bestimmt, welcher Eintrag der Optionsliste gelesen werden soll. Das Ergebnis ist ein numerisches Array mit zwei Elementen: Index 0 enthält den Exportwert und Index 1 das angezeigte Label.
Die Funktion ist sinnvoll, wenn aus einem vom Benutzer ausgefüllten PDF-Formular die möglichen Auswahloptionen eines Feldes ausgelesen und z. B. für die Validierung oder Weiterverarbeitung im Backend genutzt werden sollen.
Achtung: Die FDF-Erweiterung ist seit PHP 7.0 nicht mehr im PHP-Kern enthalten und erfordert die externe fdftk-Bibliothek von Adobe. In modernen Projekten sollten Alternativen wie pdfparser oder pdftk bevorzugt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $fdf_document Pflicht | resource | Eine gültige FDF-Dokumentressource, wie sie von fdf_open() oder fdf_create() zurückgegeben wird. |
|
| $fieldname Pflicht | string | Der vollständige Name des Formularfeldes (entspricht dem internen PDF-Feldnamen), dessen Optionsliste gelesen werden soll. | |
| $element Pflicht | int | Nullbasierter Index des gewünschten Eintrags in der Optionsliste des Feldes. |
Rückgabewert
0 enthält den Exportwert der Option, Index 1 das angezeigte Label. Schlägt der Aufruf fehl (z. B. ungültiger Feldname oder Index außerhalb des Bereichs), wird false zurückgegeben.Beispiele
Erste Option eines Listenfeldes auslesen
<?php
// FDF-Datei öffnen
$fdf = fdf_open('formular.fdf');
if ($fdf !== false) {
// Ersten Eintrag (Index 0) der Optionsliste des Feldes 'Abteilung' lesen
$option = fdf_get_opt($fdf, 'Abteilung', 0);
if ($option !== false) {
echo 'Exportwert: ' . $option[0] . PHP_EOL;
echo 'Label: ' . $option[1] . PHP_EOL;
} else {
echo 'Option nicht gefunden.';
}
fdf_close($fdf);
}
Alle Optionen eines Feldes iterieren
<?php
$fdf = fdf_open('formular.fdf');
if ($fdf !== false) {
$index = 0;
$optionen = [];
// Alle Optionen des Feldes 'Standort' einlesen
while (($opt = fdf_get_opt($fdf, 'Standort', $index)) !== false) {
$optionen[] = [
'export' => $opt[0],
'label' => $opt[1],
];
$index++;
}
fdf_close($fdf);
foreach ($optionen as $o) {
printf("[%s] %s\n", $o['export'], $o['label']);
}
}
// Wichtig · Fallstricke
Veraltete Erweiterung: Die FDF-Erweiterung ist seit PHP 7.0 nicht mehr im offiziellen PHP-Paket enthalten. Sie wird nur noch auf älteren PHP 5.x-Systemen mit installierter Adobe FDF Toolkit-Bibliothek unterstützt. Für aktuelle Projekte empfiehlt sich der Einsatz von Bibliotheken wie iTextSharp, pdftk oder FPDI.
Da die Optionsliste in FDF nicht zwingend explizit gespeichert wird, kann fdf_get_opt() unter Umständen auch dann false zurückgeben, wenn das Feld existiert, aber keine Optionen definiert hat. Eine Fehlerprüfung mit !== false ist daher obligatorisch.