pdfmerger - foreach值创建对象PHP?

时间:2014-07-28 12:55:48

标签: php forms object foreach set

请原谅我缺乏术语和PHP的知识我对它很缺乏经验。 我有来自pdfmerger开源代码的PHP示例。

include 'PDFMerger.php';

$pdf = new PDFMerger;

$pdf ->addPDF('samplepdfs/page1.pdf' , 'all')
     ->addPDF('samplepdfs/page2.pdf' , 'all')
     ->merge('download', 'mypdf.pdf' );

我想从表单动态创建它。因此,当有人从表单中选择他们想要两个页面并单击提交时,它将通过已发布的数组并为数组中的每个值添加页面。

所以表单看起来像这样: -

<form action="test.php" method="post">
Page1? : <input name="Page1" type="checkbox" value="one.pdf" /><br><br>
Page2? : <input name="Page2" type="checkbox" value="two.pdf" /><br><br>
Document Name? : <input name="name" type="text" value="MYPDF1.pdf" /><br><br>
<input type="submit">
</form>

我希望php能够完成这些值并执行下面的操作,我知道这是不正确的。

include 'PDFMerger.php';

$name = $_POST["name"];

$arr = $_POST;

$pdf = new PDFMerger;

$pdf 
foreach($arr as &$value){
 ->addPDF('samplepdfs/' . $value , 'all')
};
    ->merge('download', $name );

这意味着我可以在表单中添加任意数量的项目,并允许用户从表单中选择任何pdf组合,然后合并它们。

我知道这是错的,但我找不到(因为我真的不知道要搜索什么)任何帮助我弄明白的东西。

另外,我如何阻止循环获取名称(循环中的最后一个值),因为我想手动将其添加到 - &gt;合并对象。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

更新

我不认为你的想法太过分了,下面的内容会让你走上正轨  注意:输入名称&#34;页面[]&#34;将值存储在数组中,您必须动态生成标签(例如Page1?,Page2?)&amp;输入的值(例如one.pdf,two.pdf),以使表单更具动态性,即每次添加新文档时不必手动添加行。

<form action="test.php" method="post">
    Page1? : <input name="page[]" type="checkbox" value="one.pdf" /><br><br>
    Page2? : <input name="page[]" type="checkbox" value="two.pdf" /><br><br>
    Document Name? : <input name="name" type="text" value="MYPDF1.pdf" /><br><br>
    <input type="submit">
</form>

<?php
include 'PDFMerger.php';

$name = $_POST["name"]; // add some validation and / or sanitise here

$pageArray = $_POST['page']; // add some validation and / or sanitise here

$pdf = new PDFMerger;
foreach ($pageArray as $value) {
    $pdf->addPDF('samplepdfs/'.$value, 'all');
}
$pdf->merge('download', $name);