上記のbase64でエンコードされたファイルは少しバグがあるようです(ZipArchiveはそれを開くことを拒否しました)が、次のように機能します。
// make the archive first
file_put_contents($fileName, base64_decode("UEsDBAoAAAAAAOmRAT1vYassFAAAABQAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi9lcHViK3ppcFBLAQIUAAoAAAAAAOmRAT1vYassFAAAABQAAAAIAAAAAAAAAAAAIAAAAAAAAABtaW1ldHlwZVBLBQYAAAAAAQABADYAAAA6AAAAAAA="));
// open archive
if (($err = $zipfile->open($fileName)) !== TRUE) {
trigger_error("Could not open archive: " . $fileName, E_USER_ERROR);
}
$zipfile->add(...)
私はこれを自分のepub生成コードでテストしましたが、正常に機能しました。Epubcheck1.05はそれを検証します。ちなみに、「OPLのEPUBライブラリ」を使用している場合は、かなりバグがあることに注意してください。このソリューションを焼き付けてすぐに修正を投稿する予定ですが、それまでは注意してください。