gpt4 book ai didi

PHP Zip() 函数无法在 Windows 服务器上运行

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

我试图让基本的 PHP zip 函数在 Windows 服务器上工作,但没有成功。
甚至以下来自 PHP.net 上 Zip Archive 部分的最简单示例也无法正常工作:

<?php
$zip = new ZipArchive;

if ($zip->open('D:\rootfolder\path_to_files\test.zip') === TRUE) {

if($zip->addFile('D:\rootfolder\path_to_files\newfile.txt', 'newname2.txt')) {
echo 'worked like a charm';
} else {
echo 'Could not add the file';
}
$zip->close();
} else {
echo 'failed';
}
?>

在上面的简单示例中,如果 zip 文件 test.zip 不存在,它将回显“失败”,但是如果它确实存在,它将对我回显“工作得像一个” charm' 无论要添加的文件(新文件)是否存在。 但最糟糕的是它不会创建 zip!!

我认为这与权限无关,因为我可以成功使用 fwrite 和其他文件功能。

现在我没有看到任何提及在 php 信息页面的配置命令部分中的 zip 构建 ('--with-zip=/hsphere/etc),所以我不能 100% 确定扩展名是否正确,但这里有一些更详细的信息关闭 phpinfo() 的信息:

服务器: Windows Server 2008 R2 Standard Edition Service Pack 1
PHP: 版本 5.4.14
Zip:已启用且版本为1.11.0
zlib.output_compression:关闭
zlib.output_compression_level: -1
zlib.output_handler:无值

最佳答案

如果你想创建一个新的 zip 文件并向它添加 ne 文件,你必须设置这个参数:ZipArchive::CREATE
所以你的例子如下:

$zip = new ZipArchive;

if ($zip->open('C:\xampp\htdocs\StackOverflow\test.zip', ZipArchive::CREATE) === TRUE) {

if($zip->addFile('C:\xampp\htdocs\StackOverflow\newfile.txt', 'newname2.txt')) {
echo 'worked like a charm';
}else {
echo 'Could not add the file';
}
$zip->close();
}else {
echo 'failed';
}

希望对您有所帮助:)

关于PHP Zip() 函数无法在 Windows 服务器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722384/

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