Start · Sprachen · PHP · Referenz · fdf_open

fdf_open

Funktion

Öffnet eine FDF-Datei (Forms Data Format) vom Dateisystem und gibt eine FDF-Ressource zurück.

seit PHP 4.0.0 Kategorie: io

Signatur

fdf_open(string $filename): resource|false

Beschreibung

fdf_open() liest eine FDF-Datei (Forms Data Format) von der Festplatte und öffnet sie als FDF-Dokument. FDF ist ein von Adobe entwickeltes Format, das zum Austausch von Formularfelddaten aus PDF-Dokumenten verwendet wird. Die Funktion gibt eine Ressource zurück, die mit anderen fdf_*-Funktionen weiterverarbeitet werden kann.

Typischer Einsatzfall ist die Verarbeitung von Formularübermittlungen, bei denen ein Browser die Daten eines PDF-Formulars als FDF-Datei an einen Webserver schickt. Nach dem Öffnen können mit Funktionen wie fdf_get_value() die Formularfelder ausgelesen werden.

Nachdem alle Operationen abgeschlossen sind, sollte die Ressource mit fdf_close() wieder freigegeben werden, um Speicher und Systemressourcen zu schonen.

Die FDF-Erweiterung setzt die Installation der FDF Toolkit SDK-Bibliothek von Adobe voraus. Sie ist seit PHP 5.3 veraltet und wurde in PHP 7.0 aus dem Kern entfernt.

Parameter

Name Typ Default Beschreibung
$filename Pflicht string Absoluter oder relativer Pfad zur FDF-Datei, die geöffnet werden soll.

Rückgabewert

Typ
resource|false
Beschreibung
Gibt bei Erfolg eine FDF-Ressource zurück, die für nachfolgende fdf_*-Funktionen benötigt wird. Im Fehlerfall (z. B. Datei nicht vorhanden oder nicht lesbar) wird false zurückgegeben.

Beispiele

FDF-Datei öffnen und Feldwert auslesen

<?php
// FDF-Dokument öffnen
$fdf = fdf_open('/var/www/uploads/formular.fdf');

if ($fdf === false) {
    die('Fehler: FDF-Datei konnte nicht geöffnet werden.');
}

// Wert des Feldes "vorname" auslesen
$vorname = fdf_get_value($fdf, 'vorname');
echo 'Vorname: ' . htmlspecialchars($vorname) . PHP_EOL;

// Ressource wieder freigeben
fdf_close($fdf);
?>
Vorname: Max

FDF-Formulardaten aus einem HTTP-Upload verarbeiten

<?php
// Hochgeladene FDF-Datei aus einem Formular verarbeiten
if (isset($_FILES['fdf_upload']) && $_FILES['fdf_upload']['error'] === UPLOAD_ERR_OK) {
    $tmpPath = $_FILES['fdf_upload']['tmp_name'];

    $fdf = fdf_open($tmpPath);

    if ($fdf !== false) {
        $felder = ['name', 'email', 'telefon'];
        foreach ($felder as $feld) {
            $wert = fdf_get_value($fdf, $feld);
            echo htmlspecialchars($feld) . ': ' . htmlspecialchars($wert) . '<br>' . PHP_EOL;
        }
        fdf_close($fdf);
    } else {
        echo 'Fehler beim Öffnen der FDF-Datei.';
    }
}
?>
name: Erika Mustermann<br> email: erika@example.com<br> telefon: +49123456789<br>

// Wichtig · Fallstricke

Deprecation-Hinweis: Die FDF-Erweiterung (ext/fdf) ist seit PHP 5.3.0 als veraltet (deprecated) markiert und wurde mit PHP 7.0.0 vollständig aus dem PHP-Kern entfernt. Sie sollte in neuen Projekten nicht mehr verwendet werden.

Als Alternative bieten sich Bibliotheken wie TCPDF, pdfparser oder das pdftk-Kommandozeilenwerkzeug an, um PDF-Formulardaten zu verarbeiten.

Beim Verarbeiten von hochgeladenen FDF-Dateien sollte der Dateipfad niemals direkt aus Benutzereingaben übernommen werden, um Path-Traversal-Angriffe zu verhindern. Verwende stets $_FILES['...']['tmp_name'] für temporär hochgeladene Dateien.