PHP で ZipArchive を利用したパスワード付き ZIP ファイルを Windows の標準機能で解凍すると、次のエラーが発生することがあります。
エラー 0x80004005: エラーを特定できません
これは Windows 標準の圧縮ファイルの解凍が ZipArchive で指定した暗号化方式に対応していないためです。
そのため、暗号化方式を PKWARE 仕様にすることで Windows で問題なく解凍できます。
$zip = new ZipArchive;
$zip->open([ZIP ファイルのファイル名]);
$zip->addFromString([ZIP ファイルに追加するファイル名], [ファイルデータ]);
$zip->setEncryptionName([ZIP ファイルに追加するファイル名], ZipArchive::EM_TRAD_PKWARE, [パスワード]);
$zip->close();
コメントする