在php中将数组打印到用户定义的文件中

时间:2011-03-25 06:20:13

标签: php

我怀疑使用php下载文件。我写了一个脚本,虽然我创建了一个数组报告。    现在我希望在单击链接时打印一个用户定义的文件名。    我创建了,输出将在同一目录中创建。我不希望在服务器中创建输出。我希望它直接通过数组写在用户目录的文件中。    下载链接的创建也将显示在同一页面上。

1 个答案:

答案 0 :(得分:1)

您无法控制文件所在的用户计算机上的位置..他们控制着。但是,您可以让他们直接通过下载表单指定文件名。例如:

您的下载链接会指向包含此表单的页面,或使用ajax将其弹出模式或其他内容:

<form action="download-report.php">
  <label for="filename">Filename</label>
  <input type="text" name="filename" />
  <div><input type="submit" value="download" />
</form>

在download-report.php

// santize the filename input and then assign it to $filename here

$report = getReportArray(); // or whatever call(s) you need to generate the array
$report = print_r($report, true); // convert the array to a string

header('Content-type: text/plain');
header('Content-length: '.strlen($report));

// this will make it like r-click -> save as, but witht he filename they specified
header('Content-disposition: attachment; filename="'.$filename.'"';

header("HTTP/1.0 200 Ok");
echo $report;
exit(0);

当然你可以告诉他们右键单击并保存在链接附近的指令中并跳过整个表格...或者只是给出一般默认文件名,然后让对话框弹出时更改它...