PHP 8 改变了 ZIP 存档的“打开”方式,并指出:
不推荐使用空文件作为 ZipArchive。Libzip 1.6.0 不再接受空文件作为有效的 zip 存档。
在下面的测试代码中,打开名为 ZIP 文件的文件$backupzip
没有错误,但打开 ZIP 文件名$invoicezip
失败并出现错误:
不推荐使用:ZipArchive::open():在第 12 行不推荐使用空文件作为 ZipArchive
<?php
declare(strict_types=1);
ini_set('display_errors','1');ini_set('display_startup_errors','1');error_reporting(E_ALL);
define('BACKUPDIR','E:\Database_Backups\\');
$backupfile = BACKUPDIR . date('Ymd') . '.zip';
$temp_file = tempnam(sys_get_temp_dir(),'AW');
$backupzip = new ZipArchive();
$invoicezip = new ZipArchive();
$backupzip->open($backupfile,ZipArchive::CREATE); // <<<--- this works
$invoicezip->open($temp_file,ZipArchive::CREATE); // <<<--- this fails