簡體   English   中英

PHP:從PDF中提取fdf字段作為數組

[英]PHP: Extract fdf fields as an array from a PDF

我想從可填寫的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已不復存在。

值得慶幸的是, 一個“諾亞”用這個問題的preg_match_all正則表達式解決方案對php文檔做了評論 為清晰起見,此處略作修改。 諾亞萬歲。

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;
    }

我希望有人會因為缺乏真正的fdf支持而得到補償並解決這個問題。

因為如果您正在閱讀這個問題,我們可能都在相同的基本工作流程之后,那么您應該知道我所遵循的基本工作流程是:

HTH

-FT

如果您控制pdf並且只想要鍵,則以下操作將起作用。 使用php,沒有其他庫(如果你主持沒有它們,那就好了)。

將pdf提交按鈕設置為html並將頁面設置為運行php代碼的地址。 在此輸入圖像描述

$q_string  = file_get_contents("php://input");
parse_str($q_string , $pdf_array);
$pdfkeys = array_keys($pdf_array);

來自pdf文件的html查詢字符串被放入變量$ q_string中。 然后將其解析為名為$ pdf_array的數組。 $ pdf_array包含所有鍵和值。 然后使用array_keys()將所有鍵放入$ pdfkeys中。

我來到這里看看如何讀取pdf值放入數據庫,最后經過一些更多的探討后得出了上述內容。 希望滿足一些人的需求。 xfdf也可以工作,但你需要解析為xml然后 - 這對我來說更簡單。

我從提交到我的服務器的PDF獲得了一個普通的帖子,但是沒有在$ _POST數組中。 你只需要從php:// input解析它:

$allVars = file_get_contents("php://input");

parse_str($allVars, $myPost);

foreach($myPost as $key => $value) {
 $allKeys[] = $key;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM