1

データベースのデータを保存する5つの異なるファイルを作成したいと思います。5つのファイルを圧縮して、この関数にzipを返してもらいたい。

実際にディスクに書き込まずに5つのファイルを作成できますか?dbから取得するデータは文字列のみであるため、各ファイルは長い文字列になります。

私は単にこれをしたい:

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 に答える