1

我想创建 5 个不同的文件来存储我的数据库中的数据。我想压缩 5 个文件并让这个函数返回 zip。

我可以创建 5 个文件而不将它们实际写入磁盘吗?我从数据库得到的数据只是字符串,所以每个文件都是一个长字符串。

我只是想这样做:

function getZippedFiles()
 // Create 1..5 files
 // Zip them up
 // Return zip
end

main()
// $zip_file = getZippedFiles();
end

非常感谢有关如何执行此操作的任何信息,谢谢!

4

1 回答 1

1

当然可以,使用ZipArchive非常简单

// What the array structure should look like [filename => file contents].
$files = array('one.txt' => 'contents of one.txt', ...);

// Instantiate a new zip archive.
$zip_file = new ZipArchive;

// Create a new zip. This method returns false if the creation fails.
if(!$zip_file->open('directory/to/save.zip', ZipArchive::CREATE)) {
    die('Error creating zip!');
}

// Iterate through all of our files and add them to our zip stream.
foreach($files as $file => $contents) {
    $zip_file->addFromString($file, $contents);
}

// Close our stream.
$zip_file->close();
于 2013-01-18T02:38:50.453 回答