我正在嘗試使基本的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