1

zipArchive を使用して圧縮する前に、一連の php ファイルを解析して .PDF および .PNG ファイルを出力する必要があります。私がやりたいことは次のようなものです

$zip = new ZipArchive();
$zip->open($file, ZipArchive::OVERWRITE);

//If you access qr_gen.php on a browser it creates a QR PNG file.
$zip->addFile('qr_gen.php?criteria=1', 'alpha.png');
$zip->addFile('qr_gen.php?criteria=2', 'beta.png');
//If you access pdf_gen.php on a browser it creates a PDF file.
$zip->addFile('pdf_gen.php?criteria=A', 'instructions.pdf');

$zip->close();
header('Content-Type: application/zip');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename="file.zip"');
readfile($file);
unlink($file);

これは明らかに機能しません。どうすれば目標を達成できますか?

4

3 に答える 3

5

次の行は、ファイル名として url を指定すると機能しません。

$zip->addFile('qr_gen.php?criteria=1', 'alpha.png');

代わりに、最初に png をダウンロードしてローカルに保存する必要があります。次に、それらを zip アーカイブに追加します。このような:

file_put_contents('alpha.png', 
    file_get_contents('http://yourserver.com/qr_gen.php?criteria=1');

$zip->addFile('alpha.png');

詳細については、のドキュメント ページを参照してください。ZipArchive::addFile()

于 2013-04-04T13:24:20.373 に答える