Я хочу извлечь доступные поля в виде массива из заполняемого pdf.
массив вроде: array('firstname','secondname','address');
Мне не нужны значения для этих полей, если они заполнены.
что проще всего сделать с помощью PHP?
в онлайн-документации для «fdf_next_field_name» приведен следующий пример, который вы можете изменить, чтобы сохранить имена полей в массиве
<?php $fdf = fdf_open($HTTP_FDF_DATA); for ($field = fdf_next_field_name($fdf); $field != ""; $field = fdf_next_field_name($fdf, $field)) { echo "field: $field\n"; } ?>
Я поддержал ответ Мюррея, потому что она была в самом начале, и я уверен, что он прав до php 5.3
К сожалению, pecl fdf больше нет.
К счастью, один «ной» сделал комментарий к документации php с помощью решения regx preg_match_all. Включено здесь с небольшими изменениями для ясности. Да здравствует ноа.
function parse($text_from_file) { if (!preg_match_all("/<<\s*\/V([^>]*)>>/x",$text_from_file,$out,PREG_SET_ORDER)) return; for ($i=0;$i<count($out);$i++) { $pattern = "<<.*/V\s*(.*)\s*/T\s*(.*)\s*>>"; $thing = $out[$i][2]; if (eregi($pattern,$out[$i][0],$regs)) { $key = $regs[2]; $val = $regs[1]; $key = preg_replace("/^\s*\(/","",$key); $key = preg_replace("/\)$/","",$key); $key = preg_replace("/\\\/","",$key); $val = preg_replace("/^\s*\(/","",$val); $val = preg_replace("/\)$/","",$val); $matches[$key] = $val; } } return $matches; }
Я ожидаю, что кто-то получит fedup с отсутствием истинной поддержки fdf в php и исправит это.
Поскольку мы все, вероятно, после того же основного рабочего процесса, если вы читаете этот вопрос, то вы должны знать, что основной рабочий процесс, за которым я следую:
НТН
-Ft
Если вы будете управлять pdf-файлом и просто хотите использовать клавиши, то будет работать следующее. Использует php, никаких других библиотек (хорошо, если у вас их нет).
Установите кнопку отправки PDF в html и установите страницу на адрес, где будет запущен ваш PHP-код.
$q_string = file_get_contents("php://input"); parse_str($q_string , $pdf_array); $pdfkeys = array_keys($pdf_array);
Строка запроса html из файла pdf помещается в переменную $ q_string. Затем он разбирается в массив с именем $ pdf_array. $ pdf_array содержит все ключи и значения. Затем array_keys () используется, чтобы поместить все ключи в $ pdfkeys по вашему желанию.
Я пришел сюда, чтобы посмотреть, как читать значения PDF, чтобы вставить в db, и, наконец, после того, как некоторые из них выкачали, вышли выше. Надеюсь, это удовлетворит потребности некоторых людей. xfdf также может работать, но вам нужно будет анализировать как xml, тогда – это было проще для меня.
Я получаю обычный пост из PDF-файлов, отправляемых на мой сервер, но не в массив $ _POST. Вам просто нужно разобрать его из php: // input:
$allVars = file_get_contents("php://input"); parse_str($allVars, $myPost); foreach($myPost as $key => $value) { $allKeys[] = $key; }