私はいくつかのファイルとサブディレクトリを含む圧縮されたディレクトリを持っています。私が達成したいのは、圧縮されたディレクトリの内容を変更し、変更されたzipファイルをダウンロードして、元のzipファイル内で変更が変更されないようにすることです。PHPで元のファイルに変更を加えずに圧縮ディレクトリを変更してダウンロードするには?
たとえば、圧縮されたディレクトリ内の特定のファイルを削除し、修正されたzipファイルをダウンロードして、元の圧縮されたディレクトリにファイルが残っているようにしたいとします。
ここまでは私のコードです。それが正常に動作しますが、問題は、ファイルには、元の圧縮ディレクトリ内に削除されていることである。
<?php
$directoryPath = '/Users/Shared/SampleDirectory.zip';
$fileToDelete = 'SampleDirectory/samplefile.txt';
$zip = new ZipArchive();
if ($zip->open($directoryPath) === true) {
$zip->deleteName($fileToDelete);
$zip->close();
}
header('Content-Description: File Transfer');
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="' . basename('SampleDirectory.zip') . '"');
header('Content-Length: ' . filesize('SampleDirectory.zip'));;
readfile('SampleDirectory.zip');
?>
にはどうすれば所望の機能を達成することができますか?