在本地主机(Windows)上测试脚本。我收到错误消息“失败,代码:9”。
http://php.net/manual/en/ziparchive.open.php
当我加上
ZipArchive::创建
它工作(输出“ok”):
define('ABSPATH', dirname(__FILE__) . '/' );
$dest = ABSPATH.'zip_file_name.zip';
$file = ABSPATH.'test.php';
$zip = new ZipArchive;
$res = $zip->open($dest, ZipArchive::CREATE | ZIPARCHIVE::OVERWRITE);
if ($res === TRUE) {
echo 'ok';
$zip->addFile($file, $file);
$zip->close();
} else {
echo 'failed, code:' . $res;
}
zip_file_name.zip中的test.php文件具有完整的windows路径。在根级别(Windows环境)的zip文件中有一个目录“C:”。这是正确的吗?
如果不需要绝对路径,可以使用相对路径:
define('ABSPATH', dirname(__FILE__) . '/' );
$dest = ABSPATH.'zip_file_name.zip';
$relativeFile = 'test.php';
$absoluteFile = ABSPATH.$relativeFile;
$zip = new ZipArchive;
$res = $zip->open($dest, ZipArchive::CREATE | ZIPARCHIVE::OVERWRITE);
if ($res === TRUE) {
echo 'ok';
$zip->addFile($absoluteFile, $relativeFile);
$zip->close();
} else {
echo 'failed, code:' . $res;
}