PHP ZipArchive类不创建存档

PHP ZipArchive类不创建存档,php,zip,cakephp-3.0,ziparchive,php-zip-archive,Php,Zip,Cakephp 3.0,Ziparchive,Php Zip Archive,我正在尝试使用以下代码创建所选文件的存档 $zip_in = new \ZipArchive; if ($zip_in->open('input.zip') === TRUE) { $files = array(); for ($loop = 0; $loop < $zip_in->numFiles; $loop++) { $files[] = $zip_in->getNameIndex($loop); } $zip_in-

我正在尝试使用以下代码创建所选文件的存档

$zip_in = new \ZipArchive;
if ($zip_in->open('input.zip') === TRUE) {
    $files = array();
    for ($loop = 0; $loop < $zip_in->numFiles; $loop++) {
        $files[] = $zip_in->getNameIndex($loop);
    }
    $zip_in->extractTo('workspace');
    $zip_in->close();
    /**
     * Changes done to files extracted inside WORKSPACE DIR above
     */
    chdir('workspace');
    $zip_out = new \ZipArchive();
    $zip_out->open('output.zip', \ZipArchive::CREATE);
    foreach ($files as $file) {
        $zip_out->addFile($file);
    }
    $zip_out->close();
}

这是CakePHP 3应用程序的一部分。根据提示注释,当我在CakePHP 3应用程序之外独立运行代码时,它工作得很好。但是在CakePHP应用程序中存在一些问题。我正在添加额外的标记以突出CakePHP社区中的问题。

因为您的代码错误,并且您正在用一个文件替换ZipArchive实例:

$zip=addFile($file)

替换为:


$zip->addFile($file)

不,这是stackoverflow上的输入错误,而不是实际的代码。我正在更正。谢谢你指出!你能给我$files的代码并确保在这个文件中只有文件而没有目录吗?谢谢你对这个问题感兴趣。我已经在上面的问题中添加了所需的详细信息。您的代码正在为我工作。如何启动php脚本?感谢您在本地运行代码。我这样运行代码:
class A{public function A1(){/***上面的代码*/}}class B{public function B1{$A=newa();$A->A1();}}
这些东西都在CakePHP 3应用程序中
class A {
    public function A1 () {
        /**
         * the code above
         */
    }
}

class B {
    public function B1 {
        $a = new A();
        $a->A1();
    }
}