Start · Sprachen · PHP · Referenz · fdf_get_flags

fdf_get_flags

Funktion

Ermittelt die Flags (Attributbits) eines bestimmten Felds aus einem FDF-Dokument.

seit PHP 4.3.0 Kategorie: io

Signatur

fdf_get_flags(resource $fdf_document, string $fieldname, int $whichflags): int

Beschreibung

fdf_get_flags() liest die gesetzten Flags eines Formularfelds aus einem FDF-Dokument (Forms Data Format) aus. FDF-Dateien werden häufig zusammen mit PDF-Formularen verwendet, um Formulardaten auszutauschen. Die Flags kodieren verschiedene Feldeigenschaften als Bitmaske, z. B. ob ein Feld schreibgeschützt (ReadOnly), erforderlich (Required) oder ausgeblendet (Hidden) ist.

Der Parameter whichflags legt fest, welche Flag-Gruppe abgefragt werden soll. Mögliche Werte sind FDFSetF (gesetzte Flags) und FDFClrF (gelöschte Flags) sowie die entsprechenden Varianten für Darstellungs-Flags (FDFSetAP, FDFClrAP). Das Ergebnis ist eine Ganzzahl, deren einzelne Bits die jeweiligen Feldeigenschaften repräsentieren.

Die FDF-Erweiterung (PHP-Extension fdf) gilt als veraltet und wird in modernen PHP-Versionen nicht mehr standardmäßig ausgeliefert. Für neue Projekte empfiehlt sich der Einsatz moderner PDF-Bibliotheken wie TCPDF oder mPDF.

Parameter

Name Typ Default Beschreibung
$fdf_document Pflicht resource Eine gültige FDF-Dokument-Ressource, die zuvor mit fdf_open() oder fdf_create() erzeugt wurde.
$fieldname Pflicht string Der vollständige Name des Formularfelds, dessen Flags abgefragt werden sollen. Bei hierarchischen Feldnamen werden die Ebenen durch Punkte getrennt, z. B. 'Adresse.PLZ'.
$whichflags Pflicht int Gibt an, welche Flag-Gruppe abgerufen werden soll. Typische Konstanten sind FDFSetF für gesetzte Feldflags und FDFClrF für gelöschte Feldflags.

Rückgabewert

Typ
int
Beschreibung
Gibt einen Integer-Wert zurück, dessen Bits die gesetzten bzw. gelöschten Flags des angegebenen Felds kodieren. Im Fehlerfall (z. B. ungültiger Feldname) wird 0 zurückgegeben.

Beispiele

Flags eines Felds aus einem FDF-Dokument lesen

<?php
// FDF-Datei öffnen
$fdf = fdf_open('formular.fdf');

if ($fdf) {
    // Gesetzte Flags des Felds 'Name' abrufen
    $flags = fdf_get_flags($fdf, 'Name', FDFSetF);

    // Prüfen, ob das Feld schreibgeschützt ist (Bit 1 = ReadOnly)
    if ($flags & 1) {
        echo "Das Feld 'Name' ist schreibgeschützt.\n";
    } else {
        echo "Das Feld 'Name' ist bearbeitbar.\n";
    }

    // Prüfen, ob das Feld als Pflichtfeld markiert ist (Bit 2 = Required)
    if ($flags & 2) {
        echo "Das Feld 'Name' ist ein Pflichtfeld.\n";
    }

    fdf_close($fdf);
} else {
    echo "FDF-Datei konnte nicht geöffnet werden.\n";
}
?>
Das Feld 'Name' ist bearbeitbar. Das Feld 'Name' ist ein Pflichtfeld.

Gelöschte Flags eines Felds prüfen

<?php
$fdf = fdf_open('formular.fdf');

if ($fdf) {
    // Gelöschte Flags des Felds 'Email' abrufen
    $clrFlags = fdf_get_flags($fdf, 'Email', FDFClrF);

    echo "Gelöschte Flags für 'Email': " . decbin($clrFlags) . " (binär)\n";
    echo "Als Integer: " . $clrFlags . "\n";

    fdf_close($fdf);
}
?>
Gelöschte Flags für 'Email': 10 (binär) Als Integer: 2

// Wichtig · Fallstricke

Veraltet: Die PHP-FDF-Erweiterung wird seit PHP 5 nicht mehr aktiv weiterentwickelt und ist in vielen Umgebungen nicht verfügbar. Für neue Projekte sollten moderne Alternativen wie TCPDF oder spezialisierte PDF-Bibliotheken genutzt werden.

Die genaue Bedeutung der einzelnen Flag-Bits ist in der PDF-Spezifikation von Adobe definiert. Für eine korrekte Auswertung sollte man die entsprechenden Konstanten (FDFSetF, FDFClrF etc.) verwenden, sofern die FDF-Extension korrekt installiert ist.

Die FDF-Erweiterung muss beim Kompilieren von PHP mit --with-fdftk aktiviert werden und erfordert das proprietäre FDF Toolkit von Adobe.