Signatur
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
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);
?>
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.';
}
}
?>
// 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.