Signatur
Beschreibung
fdf_get_encoding() liest den im FDF-Dokument (Forms Data Format) gespeicherten Zeichensatz-Schlüssel /Encoding aus und gibt ihn als Zeichenkette zurück. FDF-Dateien werden typischerweise verwendet, um Formulardaten von PDF-Dokumenten zu übertragen.
Der /Encoding-Schlüssel gibt an, in welcher Zeichencodierung die Formulardaten kodiert sind, beispielsweise Shift-JIS für japanische Zeichen oder PDFDocEncoding als Standard. Diese Information ist besonders wichtig, wenn Formulardaten korrekt interpretiert und verarbeitet werden müssen.
Die Funktion gehört zur FDF-Erweiterung (fdftk), die in modernen PHP-Versionen nicht mehr standardmäßig verfügbar ist. Sie ist nützlich, wenn ältere PDF-Formular-Workflows verwaltet werden, bei denen die Zeichenkodierung der übertragenen Daten variieren kann.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $fdf_document Pflicht | resource | Eine gültige FDF-Dokumentressource, die zuvor mit fdf_open() oder fdf_open_string() geöffnet wurde. |
Rückgabewert
/Encoding-Schlüssels als Zeichenkette zurück. Ist kein Encoding-Schlüssel gesetzt, wird eine leere Zeichenkette zurückgegeben.Beispiele
Zeichenkodierung eines FDF-Dokuments auslesen
<?php
// FDF-Datei öffnen
$fdf = fdf_open('/pfad/zur/formular.fdf');
if ($fdf !== false) {
// Encoding-Schlüssel auslesen
$encoding = fdf_get_encoding($fdf);
if ($encoding !== '') {
echo 'Zeichenkodierung des FDF-Dokuments: ' . $encoding;
} else {
echo 'Kein Encoding-Schlüssel im FDF-Dokument vorhanden.';
}
// Ressource schließen
fdf_close($fdf);
} else {
echo 'FDF-Dokument konnte nicht geöffnet werden.';
}
?>
Encoding beim Verarbeiten von FDF-Formulardaten berücksichtigen
<?php
// FDF-Daten aus POST-Request verarbeiten
$fdf = fdf_open_string($HTTP_FDF_DATA);
if ($fdf !== false) {
$encoding = fdf_get_encoding($fdf);
// Feldwert auslesen
$feldwert = fdf_get_value($fdf, 'nachname');
// Wenn die Kodierung bekannt ist, konvertieren
if ($encoding === 'Shift-JIS') {
$feldwert = mb_convert_encoding($feldwert, 'UTF-8', 'Shift-JIS');
}
echo 'Nachname: ' . htmlspecialchars($feldwert);
fdf_close($fdf);
}
?>
// Wichtig · Fallstricke
Deprecation-Hinweis: Die FDF-Erweiterung wird in modernen PHP-Versionen nicht mehr aktiv weiterentwickelt und ist in PHP 7 und PHP 8 standardmäßig nicht verfügbar. Für neue Projekte sollten Alternativen wie TCPDF oder die pdftk-Bibliothek in Betracht gezogen werden.
Die Funktion ist nur verfügbar, wenn PHP mit der FDF-Unterstützung kompiliert wurde (Konfigurationsoption --with-fdftk). Das FDF Toolkit von Adobe ist ebenfalls erforderlich.
Beim Verarbeiten von Formulardaten aus unterschiedlichen Quellen sollte immer die Zeichenkodierung geprüft werden, um Datenverlust oder fehlerhafte Darstellung von Sonderzeichen zu vermeiden.