If you need something like this in a pre 4.3 version, here is a rough hack I was working on before I realized I didn't need this after all. preg_match('/Fields\[(.*)\]/', $raw_pdf, $field_data); echo "Fields: ", htmlentities($field_data[1]), "<HR>\n"; $field_data = $field_data[1]; $key_value = explode(">><<", $field_data); $key_value[0] = substr($key_value[0], 2); $key_value[count($key_value) - 1] = substr($key_value[count($key_value) - 1], 0, -2); while (list(, $kv) = each($key_value)){ list($key, $value) = explode("/V", $kv); $key = substr($key, 2); if ($key[0] == '('){ $key = substr($key, 1, -1); } if ($value[0] == '/'){ $value = substr($value, 1); } if ($value[0] == '('){ $value = substr($value, 1, -1); } echo "Key: $key Value: $value<BR>\n"; }The $raw_pdf can either be the $HTTP_RAW_POST_DATA before you write a submitted PDF, or it can just be the raw PDF data you would read from a PDF using, say:$raw_pdf = implode("", file("/path/to/your/fdf/whatever.pdf"));You'll probably need to tweak this to do something more interesting than just printing the stuff.Hmmmm. Think they'll throw me in jail for this post? Oh well.