zip stream
1.0.0
Cette bibliothèque est destinée à générer de grands fichiers zip avec une empreinte de mémoire basse. Le contenu du fichier zip n'est jamais stocké en mémoire à la fois. Tout est écrit à l'aide de flux. Cette bibliothèque est pour écrire uniquement des fichiers zip et n'a aucune capacité de lecture.
Licence MIT
Les seules exigences sont PHP 7.0+ et l'extension ZLIB (presque toujours activée).
composer require jdwil/zip-stream
./vendor/bin/phpspec run
$zipStream = ZipStream::forFile('/path/to/file.zip');
// Add a file from disk
$zipStream->addFileFromDisk('foo.txt', '/path/to/foo.txt');
// Add a file from a stream
$stream = ReadStream::forFile('/path/to/bar.txt');
$zipStream->addFileFromStream('bar.txt', $stream);
// Add arbirary data
$zipStream->addFile('baz.txt', 'some arbitrary text');
// Always close the Zip Stream
$zipStream->close();
$zipStream = ZipStream::forFile('/path/to/file.zip');
$zipStream->beginFile('foo.txt');
while ($data = $somePdoStatement->fetch()) {
$zipStream->addFilePart(implode(',', $data));
}
$zipStream->endFile();
$zipStream->close();
Le fichier est envoyé lorsqu'il est en cours de construction, donc le téléchargement commence immédiatement pour l'utilisateur.
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="foo.zip"');
header('Content-Transfer-Encoding: binary');
$zipStream = ZipStream::forFile('php://output');
// Build your zip file
$zipStream->close();
Jd williams [email protected]