Ajax/php创建了一个数组——如何以.txt的形式下载给用户


Ajax/php creates an array - how do I download to the user as .txt?

我有一个php文件"php-1",它构建了一个html页面。

它要求用户输入一些信息用户点击一个按钮"getID"(顺便说一下,有几个按钮同名)

该输入被放入js/Ajax调用中,并将输入参数传递给"php-2"。(传递的参数实际上被分配给了被点击的按钮)

php-1
<script type="text/javascript">
jQuery(document).ready(function(){ 
  jQuery(document).find('button#getIDs').click(function(button){
    var parm1 = jQuery(this).attr('source_id');
    $.ajax({
      type: "POST",     
      url: "process-test.php?source_id="+parm1,
      cache: false,
      success: function(n) {    
        alert("complete");      
        } 
    }); 
 });
});
</script>

"php-2"获取POST参数(我想它实际上是一个GET),并对外部网站执行API调用,返回2个数组。例如[11122233444555]和[aaa,bbb,ccc]

(我知道阵列正在构建中,因为我将阵列内容保存到服务器文件中)

数组被"回显"到Ajax代码中。

php-2:

echo $results123;
echo $resultsABC;

我希望这个数组保存在用户机器上的两个单独的文件中,提示用户输入一个目录和一个.txt文件名,每行都包含一个数组元素:

文件1

111
222
333
...

文件2:

aaa
bbb
ccc

我该如何做到这一点?

提前感谢!

BTW,感谢所有SO成员。你已经为我节省了几天的精力。希望能够为社会做出贡献。

干杯,西蒙。

您可以向其中写入一个文件,并用JSON对数组进行编码,如以下

  $location="path/to/file.txt";
  $file = fopen($location,"w");
  $content = JSON_encode($results123).JSON_encode($resultsABC);
  fwrite($file,$content);
  fclose($file);

然后,下载文件

header("Content-Disposition: attachment; filename='"" . basename($file) . "'"");
header("Content-Type: application/force-download");
header("Content-Length: " . filesize($file));
header("Connection: close");