无法使用PHP的ZipArchive创建平面zip文件

时间:2015-04-14 15:06:25

标签: php zip ziparchive document-root

我尝试使用包含两个PDF文件的PHP ZipArchive创建一个包含平面文件夹/文件结构的zip文件。所以基本上两个文件都应该在zip文件的根目录中。我使用下面的代码来创建zip文件。

$zip = new ZipArchive();

$zip_filename = "zipfile.zip";

if ($zip->open($zip_filename, ZipArchive::CREATE)!==TRUE) {
    exit("cannot open <$filename>\n");
}

$zip->addFile("cover_file.pdf", "cover_file.pdf");
$zip->addFile("inlay_file.pdf", "cover_file.pdf");              
$zip->close();

无论我做什么,文件总是放在一个与zip文件同名的文件夹中。

有没有办法将文件保存到zip文件的根目录?

提前致谢!

1 个答案:

答案 0 :(得分:0)

为我工作

的index.php

<?php

$zip = new ZipArchive();

if (!$zip->open('zipfile.zip', ZipArchive::CREATE))
    exit("cannot open <$filename>\n");

$zip->addFromString('test.txt', 'tf is this?');
$zip->close();

启动网络服务器

$ php -S localhost:8000

输出是zipfile.zip,根目录为test.txt。

文件夹结构
|--testProject
|----index.php
|----zipfile.zip
zipfile.zip
|--zipfile.zip
|----test.txt

具有多个文件的示例

<?php

$zip = new ZipArchive();

if (!$zip->open('zipfile.zip', ZipArchive::CREATE))
    exit("cannot open <$filename>\n");

for ($i=0; $i<7; $i++)
    $zip->addFromString("test$i.txt", 'tf is this?');

$zip->close();

输出

|--zipfile.zip
|----text0.txt
|----text1.txt
|----text2.txt
|----text3.txt
|----text4.txt
|----text5.txt
|----text6.txt

注意:此扩展没有在php.ini中定义的配置指令

在PHP 5.5.15上测试