Start · Sprachen · PHP · Referenz · fdf_get_opt

fdf_get_opt

Funktion

Liest einen einzelnen Eintrag aus dem Optionsarray eines FDF-Formularfeldes und gibt dessen Label- und Exportwert zurück.

seit PHP 4.3.0 Kategorie: io

Signatur

fdf_get_opt(resource $fdf_document, string $fieldname, int $element): array|false

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

Typ
array|false
Beschreibung
Gibt bei Erfolg ein numerisches Array mit zwei Elementen zurück: Index 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);
}
Exportwert: it Label: IT-Abteilung

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']);
    }
}
[berlin] Berlin [hamburg] Hamburg [muenchen] München

// 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.