Php 一次将所有csv文件导出到内存和zip中

Php 一次将所有csv文件导出到内存和zip中,php,zip,export-to-csv,zipfile,Php,Zip,Export To Csv,Zipfile,我有一个功能导出一个csv文件,包括每个调查的所有答案。我需要一个功能将所有调查的所有答案(每个csv文件一个调查)导出到menory,并在下载到计算机之前将其压缩 不是将所有csv文件保存到服务器或本地存储,我需要将其存储到内存中,并在下载到计算机之前将其压缩 我曾经使用过这个代码: function exportAllAnswer() { allTokenId = getAllTokenId(); foreach(allTokend as $key->$value)

我有一个功能导出一个csv文件,包括每个调查的所有答案。我需要一个功能将所有调查的所有答案(每个csv文件一个调查)导出到menory,并在下载到计算机之前将其压缩

不是将所有csv文件保存到服务器或本地存储,我需要将其存储到内存中,并在下载到计算机之前将其压缩

我曾经使用过这个代码:

function exportAllAnswer() {
    allTokenId = getAllTokenId();

    foreach(allTokend as $key->$value) {
        exportAnswer($value->id, false);
    }
    $path = 'exportAllCsv';

    // we deliver a zip file
    header("Content-Type: archive/zip");

    // filename for the browser to save the zip file
    header("Content-Disposition: attachment; filename=allCsvs.zip");

    // get a tmp name for the .zip
    $tmp_zip = tempnam ("tmp", "tempname") . ".zip";

    //change directory so the zip file doesnt have a tree structure in it.
    chdir($path);
    // zip the stuff (dir and all in there) into the tmp_zip file
    exec('zip '.$tmp_zip.' *');

    // deliver the zip file
    $fp = fopen("$tmp_zip","r");
    echo fpassthru($fp);

    // clean up the tmp zip file
    unlink($tmp_zip);

    // delete folder csv
    rmdir($path);
}

似乎是它的复制品,它似乎工作得很好。祝你好运不,我需要如何将导出的文件存储到内存中以及如何压缩它?在内存中创建zip文件时,您可能会遇到内存限制问题…这并不是说您不应该在您的情况下这样做,这只是取决于CSV文件的大小。您也可以使用存档。亲爱的Amida,我给您提供了一个关于内存中zip文件的链接,不在本地存储上的文件中。这似乎正是你需要的。在说“不”之前,请仔细阅读此链接。使用ZipFile,您可以在内存中创建zip,将内容添加为文件,压缩所有内容并发送给用户。。。