Signatur
Beschreibung
fdf_get_value() gehört zur FDF-Erweiterung (Forms Data Format) und ermöglicht das Auslesen von Feldwerten aus einer FDF-Datei. FDF ist ein von Adobe entwickeltes Format zum Austausch von Formulardaten aus PDF-Dokumenten. Mit dieser Funktion kann der gespeicherte Wert eines benannten Feldes abgefragt werden.
Die Funktion arbeitet mit einer FDF-Dokumentressource, die zuvor über fdf_open() oder fdf_open_string() geöffnet wurde. Der Rückgabewert hängt vom Feldtyp ab: Einfache Felder liefern einen String, während bei Arrays (etwa bei Listenfeldern mit Mehrfachauswahl) der Parameter which den gewünschten Index angibt.
Diese Funktion ist besonders nützlich, wenn serverseitig Formulardaten aus PDF-Dateien verarbeitet werden sollen, zum Beispiel beim Einlesen von ausgefüllten PDF-Formularen, die vom Benutzer zurückgesendet wurden.
Hinweis: Die FDF-Erweiterung ist veraltet und in modernen PHP-Versionen (ab PHP 7.0) standardmäßig nicht mehr enthalten. Für neue Projekte sollten Alternativen wie PDFParser oder iText in Betracht gezogen werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $fdf_document Pflicht | resource | Eine gültige FDF-Dokumentressource, wie sie von fdf_open() oder fdf_open_string() zurückgegeben wird. |
|
| $fieldname Pflicht | string | Der Name des Formularfeldes, dessen Wert ausgelesen werden soll. Bei verschachtelten Feldern wird die Hierarchie durch Punkte getrennt, z. B. "Adresse.Strasse". |
|
| $which | mixed | Optionaler Parameter für Array-Felder (z. B. Mehrfachauswahl-Listen). Gibt den Index des gewünschten Elements an. Bei einfachen Feldern wird dieser Parameter ignoriert oder kann weggelassen werden. |
Rückgabewert
string. Bei Array-Feldern wird der Wert am angegebenen Index zurückgegeben. Ist das Feld nicht vorhanden oder tritt ein Fehler auf, wird false zurückgegeben.Beispiele
Einfachen Feldwert aus einem FDF-Dokument auslesen
<?php
// FDF-Datei öffnen, die vom Browser gesendet wurde
$fdf = fdf_open_string($HTTP_RAW_POST_DATA);
if ($fdf !== false) {
// Wert des Feldes "Name" auslesen
$name = fdf_get_value($fdf, 'Name');
echo 'Name: ' . htmlspecialchars($name) . PHP_EOL;
// Wert des Feldes "Email" auslesen
$email = fdf_get_value($fdf, 'Email');
echo 'E-Mail: ' . htmlspecialchars($email) . PHP_EOL;
fdf_close($fdf);
} else {
echo 'FDF-Dokument konnte nicht geöffnet werden.';
}
?>
Feldwert aus einer FDF-Datei auf dem Server auslesen
<?php
// FDF-Datei vom Dateisystem öffnen
$fdf = fdf_open('/pfad/zur/formular.fdf');
if ($fdf !== false) {
// Mehrere Felder auslesen
$felder = ['Vorname', 'Nachname', 'Geburtsdatum', 'Strasse'];
foreach ($felder as $feld) {
$wert = fdf_get_value($fdf, $feld);
if ($wert !== false) {
echo $feld . ': ' . htmlspecialchars($wert) . PHP_EOL;
} else {
echo $feld . ': (nicht vorhanden)' . PHP_EOL;
}
}
fdf_close($fdf);
} else {
echo 'Fehler beim Öffnen der FDF-Datei.';
}
?>
// Wichtig · Fallstricke
Veraltete Erweiterung: Die FDF-Erweiterung (ext/fdf) wurde in PHP 5.3 als veraltet markiert und in PHP 7.0 entfernt. fdf_get_value() steht in modernen PHP-Versionen daher nicht mehr zur Verfügung. Für aktuelle Projekte sollten Alternativen genutzt werden.
Sicherheitshinweis: Werte, die aus FDF-Dokumenten gelesen werden, stammen von externen Quellen und müssen vor der weiteren Verarbeitung validiert und bereinigt werden. Werden sie in HTML ausgegeben, ist htmlspecialchars() zu verwenden; bei Datenbankoperationen müssen vorbereitete Anweisungen (Prepared Statements) eingesetzt werden.
Abhängigkeit: Die Funktion setzt voraus, dass die Adobe FDF-Toolkit-Bibliothek installiert und die PHP-Erweiterung aktiviert ist.