0

わかった。すべてのファイルが存在し、読み取り可能であり、書き込み可能です。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);
?> 
4

1 に答える 1