Signatur
Beschreibung
fdf_save() speichert ein zuvor mit fdf_create() oder fdf_open() geöffnetes bzw. erzeugtes FDF-Dokument (Forms Data Format). FDF ist ein von Adobe definiertes Format zum Austausch von Formulardaten aus PDF-Formularen.
Wird der Parameter filename angegeben, schreibt die Funktion das FDF-Dokument in die angegebene Datei auf dem Server-Dateisystem. Wird er weggelassen oder als leerer String übergeben, gibt die Funktion den FDF-Inhalt direkt an die Standardausgabe (d. h. an den Browser) aus. In diesem Fall sollte zuvor der HTTP-Header Content-Type: application/vnd.fdf gesetzt werden, damit der Browser das Dokument korrekt verarbeitet.
Diese Funktion ist vor allem dann nützlich, wenn serverseitig PDF-Formulardaten vorausgefüllt und an den Client übermittelt werden sollen, oder wenn empfangene FDF-Daten verarbeitet und wieder gespeichert werden müssen.
Hinweis: Die FDF-Erweiterung (fdf) ist seit PHP 7.0 nicht mehr im offiziellen PHP-Kern enthalten und als PECL-Erweiterung verfügbar. In PHP 8.x steht sie standardmäßig nicht mehr zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $fdf_document Pflicht | resource | Ein gültiges FDF-Dokumenten-Handle, das von fdf_create() oder fdf_open() zurückgegeben wurde. |
|
| $filename | string | Optionaler Pfad zu einer Datei, in die das FDF-Dokument gespeichert werden soll. Wird dieser Parameter weggelassen oder als leerer String übergeben, wird der Inhalt direkt an die Standardausgabe gesendet. |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall (z. B. wenn die Datei nicht geschrieben werden konnte).Beispiele
FDF-Dokument direkt an den Browser senden
<?php
// HTTP-Header setzen, damit der Browser das FDF verarbeitet
header('Content-Type: application/vnd.fdf');
// Neues FDF-Dokument erstellen
$fdf = fdf_create();
// Formularfeld-Werte setzen
fdf_set_value($fdf, 'Vorname', 'Max', 0);
fdf_set_value($fdf, 'Nachname', 'Mustermann', 0);
// Zugehöriges PDF-Formular angeben
fdf_set_file($fdf, 'https://example.com/formular.pdf');
// FDF-Inhalt direkt ausgeben (kein Dateiname = Ausgabe an Browser)
fdf_save($fdf);
// Ressource freigeben
fdf_close($fdf);
?>
FDF-Dokument in eine Datei auf dem Server speichern
<?php
// Neues FDF-Dokument erstellen
$fdf = fdf_create();
// Formularfeld-Werte setzen
fdf_set_value($fdf, 'Firma', 'Muster GmbH', 0);
fdf_set_value($fdf, 'Ort', 'Berlin', 0);
// FDF-Dokument in eine Datei speichern
$zieldatei = '/var/www/fdf/ausgabe_' . time() . '.fdf';
if (fdf_save($fdf, $zieldatei)) {
echo 'FDF-Datei erfolgreich gespeichert: ' . $zieldatei;
} else {
echo 'Fehler beim Speichern der FDF-Datei.';
}
// Ressource freigeben
fdf_close($fdf);
?>
// Wichtig · Fallstricke
Deprecation / Verfügbarkeit: Die FDF-Erweiterung wurde mit PHP 5.3 als veraltet markiert und ist ab PHP 7.0 nicht mehr im PHP-Kern enthalten. Sie steht nur noch als PECL-Paket zur Verfügung und wird in PHP 8.x kaum noch unterstützt. Für neue Projekte sollte eine alternative PDF-Bibliothek wie FPDF, TCPDF oder mPDF verwendet werden.
Sicherheit: Wird fdf_save() mit einem vom Benutzer beeinflussten Dateipfad aufgerufen, besteht die Gefahr, dass beliebige Dateien überschrieben werden. Dateipfade sollten daher stets validiert und auf erlaubte Verzeichnisse beschränkt werden.
Ausgabereihenfolge: Beim Senden an den Browser darf vor fdf_save() keine andere Ausgabe erfolgt sein, da sonst der HTTP-Header nicht mehr korrekt gesetzt werden kann.