1

我想从可填充的 pdf 中提取可用字段作为数组。

一个数组,如:array('firstname','secondname','address');

如果它们已填写,我不需要这些字段的值。

使用 PHP 最简单的方法是什么?

4

4 回答 4

2

在“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";
}
?>
于 2012-01-11T17:44:08.507 回答
1

我赞成默里的回答,因为她很认真,我很确定他在 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;
    }

我希望有人会厌倦 php 中缺乏真正的 fdf 支持并解决这个问题。

如果您正在阅读此问题,我们可能都遵循相同的基本工作流程,那么您应该知道我遵循的基本工作流程是:

高温高压

-FT

于 2013-01-21T16:07:10.217 回答
1

如果您控制 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——这对我来说更简单。

于 2016-09-16T01:30:30.177 回答
0

我从提交到我的服务器的 PDF 中获得了正常的帖子,但不在 $_POST 数组中。你只需要从 php://input 解析它:

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

parse_str($allVars, $myPost);

foreach($myPost as $key => $value) {
 $allKeys[] = $key;
}
于 2017-11-19T02:35:24.087 回答