1

我有以下 php 脚本,它检查复选框元素的提交值并在选中时打印它们的值。

<?php
echo '<table class="features-table">';

echo "<tbody>";
for ($i=1;$i<=2284;$i+=1) {
  if($_POST[$i]) {
    echo"<tr>";
            echo "<td><a href=http://www.m-w.com/dictionary/" . $_POST[$i] . ">" . $_POST[$i].  "</a></td>";
    echo "</tr>";
  }
}

?>

我想让这些数据显示给用户,可以作为文本文件下载。我应该如何创建下载按钮。在这种情况下我是否需要单独的 php 脚本,我将如何获取提交给这个 php 脚本的表单数据?

从谷歌搜索我得到我需要使用类似于下面的代码

header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=list.txt");
header("Pragma: no-cache");
header("Expires: 0");
echo 'data1,data2,data3...';

但我不知道如何将它与当前的 php 脚本集成。

谢谢

4

2 回答 2

1

我认为没有必要即时创建文件。

我会通过以下方式做到这一点....

将数据作为隐藏字段提供,并将这些字段与下载按钮一起包含在表单标签中。当用户单击下载按钮时,所有表单数据都将在脚本中可用。然后,您可以对数据执行任何您想要执行的操作。

于 2012-04-07T23:34:59.273 回答
1

发布可能在将来帮助其他人的代码

在 sudip 回答后,我做了以下更改

<?php
$list = "Unknown words from GSL\n\n";
    echo '<table class="features-table">';
    echo "<tbody>";
    for ($i=1;$i<=2284;$i+=1) {
      if($_POST[$i]) {
        echo"<tr>";
                echo "<td><a href=http://www.m-w.com/dictionary/" . $_POST[$i] . ">" . $_POST[$i].  "</a></td>";
                $list = $list . $_POST[$i] . "\n";
        echo "</tr>";
      }
    }

echo'
   <form action="download.php" method="post">
   <input type="hidden" name="wordlist" value="'. $list . '">

   <center><input type="submit" name="submit_parse" style="margin-bottom: 20px; margin-top: 10px;width:200px; font-face: "Comic Sans MS"; font-size: larger; " value=" Download as a text file "> </center>
   </form>
';
?>

我必须创建单独的 php 文件,因为 header() 必须在发送任何实际输出之前调用,无论是通过普通 HTML 标记、文件中的空白行还是从 PHP 发送。

download.php 的内容

<?php
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=list.txt");
header("Pragma: no-cache");
header("Expires: 0");
echo $_POST["wordlist"] ;
?>
于 2012-04-09T05:33:17.780 回答