これは私のローカルホストでは正常に動作していますが、アップロード先のサーバでは動作しません。サーバーでは、zipは作成されますが、フォルダは作成されず、.zip内にすべてのファイルが置かれます(フォルダは区別されません)。サーバでZip関数が正しく動作しない
function rzip($source, $destination) {
// create object
$zip = new ZipArchive();
// open archive
if ($zip->open($destination, ZIPARCHIVE::CREATE) !== TRUE) {
die ("Could not open archive");
}
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source));
foreach ($iterator as $key=>$value) {
$new_filename = substr($key,strrpos($key,"/") + 1);
$zip->addFile(realpath($key), $new_filename) or die ("ERROR: Could not add file: $key");
}
$zip->close();
}
私はあなたのローカルホスト上で動作する理由を知りませんが、各ファイルのベース名をzipに追加するだけです。 zipは、そのファイルが属するZIPファイル内のどのフォルダを知るべきですか? – hakre
realpathのため – luqita
いくつかのヒントについては、サーバーのエラーログをチェックする必要があります。また、あなたのサーバーとあなたのlocalhostのphp-versionが一致するかどうか確認する必要があります。あなたの質問にそれらのものを編集してください。 –