PHP 8 меняет способ открытия ZIP-архива, и отмечается, что:
Использование пустого файла в качестве ZipArchive не рекомендуется. Libzip 1.6.0 больше не принимает пустые файлы в качестве действительных zip-архивов.
В приведенном ниже тестовом коде открытие ZIP-файла с именем $backupzip
работает без ошибок, но открытие ZIP-файла с именем $invoicezip
завершается с ошибкой:
Устарело: ZipArchive::open(): использование пустого файла в качестве ZipArchive устарело в строке 12.
<?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