gpt4 book ai didi

php - ZipArchive::close() 无效或未初始化的 Zip 对象

转载 作者:可可西里 更新时间:2023-11-01 01:04:48 24 4
gpt4 key购买 nike

我正在尝试通过压缩所有内容来备份我的网站,并将压缩包放入一个无法访问的文件夹中,这是使用 PHP 完成的。我的代码是

<?php
Zip('../../', './');
function Zip($source, $destination)
{
if (extension_loaded('zip') === true)
{ echo'a';
if (file_exists($source) === true)
{
$zip = new ZipArchive();

if ($zip->open($destination, ZIPARCHIVE::CREATE) === true)
{
$source = realpath($source);

if (is_dir($source) === true)
{
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);

foreach ($files as $file)
{
$file = realpath($file);

if (is_dir($file) === true)
{
$zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
}

else if (is_file($file) === true)
{
$zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
}
}
}

else if (is_file($source) === true)
{
$zip->addFromString(basename($source), file_get_contents($source));
}
}

return $zip->close(); // The error.
}
}

return false;
}
?>

但我得到一个错误 Warning: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object in backup.php on line 41 我搜索了谷歌,没有结果.

最佳答案

PHP 5.2.8 开始,这个问题开始出现。

尝试将FLAGS 添加到open 方法

 - ZipArchive::OVERWRITE
- ZipArchive::CREATE
- ZipArchive::EXCL
- ZipArchive::CHECKCONS

这个命令很可能会解决问题

$zip->open($destination, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);

如果上面的方法不起作用,那么快速和最肮脏的修复就是这个

@$zip->close();

关于php - ZipArchive::close() 无效或未初始化的 Zip 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13753542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com