わかった。すべてのファイルが存在し、読み取り可能であり、書き込み可能です。ZIP はエラーを生成せず、「numfiles: 140 status:0」を出力します。
コードはログを読み取り、特定のテキストをチェックしてから、多数の画像を zip フォルダーにインポートします。zipフォルダーが常に空であることを除いて、すべてがうまく機能します。これについて多くのスレッドを読みましたが、それらはすべて、アクセス許可を変更し、パスを変更し、読み取り/書き込み/存在/エラーをチェックすることで解決されました。しかし...何も機能していません。調子はどう?
<?php
$file = fopen("log.log", "r") or exit("Unable to open file!");
$zip = new ZipArchive();
$filename = "E:/Web Sites/whatever/order_stream/images.zip";
$try_file = $zip->open($filename,ZIPARCHIVE::OVERWRITE);
if ($try_file !== true) {
exit("cannot open <$filename>\n");
}
while(!feof($file)) {
$line = fgets($file);
$results = explode(": ", $line);
if ($results[0] == "Copying" || $results[0] == "File already exists, overwriting") {
$file_name = substr($results[1],19);
$to_zip = "E:/Web Sites/whatever/catalog/pictures/".$file_name;
$to_zip = trim($to_zip);
if (file_exists($to_zip)) {
$zip->addFile($to_zip);
}
}
}
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
fclose($file);
?>