我正在尝试使基本的PHP zip函数在windows服务器上工作,但没有成功。
即使下面从PHP.net ZIP存档部分最简单的例子是不工作:PHP Zip()函数在Windows服务器上不起作用
<?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不存在,它会回应'失败',但是如果它确实存在,它会回应我'像魅力一样工作',无论要添加的文件(新文件)是否存在。 但最糟糕的是它不会创建zip!
我不认为它是权限相关的,因为我可以使用fwrite和其他文件功能成功。
现在我在php info页面的配置命令部分没有看到任何提及的zip构建('--with-zip =/hsphere/etc),所以我不能100%确定扩展是否在有正确的,但这里是一些更详细的信息关phpinfo()函数:
服务器:的Windows Server 2008 R2标准版Service Pack 1
PHP:版本5.4.14
邮编:是启用和版本是1.11.0
zlib.output_compression:关闭
zlib.output_compression_level: -1
zlib.output_handler:没有价值
这工作!非常感谢。 虽然PHP.net没有提到它作为示例中的要求,但它们给出的有趣之处在于: http://us2.php.net/manual/en/ziparchive.addfile.php 并且它也没有必要出于某种原因,我只在Windows服务器上测试过的Linux服务器上。但再次感谢它现在的作品。 – 2014-11-03 22:49:08