この回答のコードは、zip ファイルの内容をフォルダーに抽出するだけです。
<?php
$zip = new ZipArchive;
$res = $zip->open('file.zip');
if ($res === TRUE) {
$zip->extractTo('/myzips/extract_path/');
$zip->close();
echo 'woot!';
} else {
echo 'doh!';
}
?>
元の zip ファイルが再度作成されるように、PHP でこの操作を逆に実行する簡単な方法 (ファイルごとに foreach ループを使用せず、再帰的にサブフォルダーに降りる) はありますか?
「extract_path」フォルダーを zip ファイルに含めてはなりません。そのため、上記のリンクの再帰関数を単純に使用することはできません。
これは、非常に単純なこれらの Linux シェル コマンドを実行するのと同等の PHP になります。
cd /myzips/extract_path/
zip /dest/file.zip *
(誰かが「なぜそれをしたいのですか?」とコメントする前に、ファイルを変更してzipファイルを再作成したいからです)