你不能用本机PHP ZipArchive类做到这一点.但是PEAR :: Archive_Zip可以 – 如果在添加该特定文件时使用ARCHIVE_ZIP_PARAM_NO_COMPRESSION参数.
一个更简单的解决方案是使用模板.使用未压缩的“mimetype”条目(zip -0)创建存根zip文件,然后将其用作临时zip,之后只需向其添加新条目:
file_put_contents("epub.zip", base64_decode("UEsDBAoAAAAAAOmRAT1vYassFAAAABQAAAAIABwAbWltZXR5cGVVVAkAA5adVUyQVx5PdXgLAAEE6AMAAAToAwAAYXBwbGljYXRpb24vZXB1Yit6aXBQSwECHgMKAAAAAADpkQE9b2GrLBQAAAAUAAAACAAYAAAAAAAAAAAApIEAAAAAbWltZXR5cGVVVAUAA5adVUx1eAsAAQToAwAABOgDAABQSwUGAAAAAAEAAQBOAAAAVgAAAAAA"));
$zip = new ZipArchive();
$zip->open("epub.zip");
$zip->addFiles(...);
(未经测试)