使用PHP从目录创建zip存档

使用PHP从目录创建zip存档,php,zip,ziparchive,Php,Zip,Ziparchive,我的PHP文件目录下有一个名为details的文件夹。在里面我有两个文件夹。一个名为zip,另一个由用户输入命名,存储在$id中 在$id文件夹下,我有很多文件夹。我想将$id文件夹下的所有内容压缩到zip文件夹中存储的zip存档中,并命名为$id.zip 我看到了大约5-6个关于堆栈溢出的解决方案来解决这个问题,但没有一个有效。最后,zip文件夹保持为空。这主要是每个人在解决方案中使用的代码: $zipname = 'adcs.zip'; $zip = new ZipArchive; $zip

我的PHP文件目录下有一个名为
details
的文件夹。在里面我有两个文件夹。一个名为
zip
,另一个由用户输入命名,存储在
$id

$id
文件夹下,我有很多文件夹。我想将
$id
文件夹下的所有内容压缩到
zip
文件夹中存储的zip存档中,并命名为
$id.zip

我看到了大约5-6个关于堆栈溢出的解决方案来解决这个问题,但没有一个有效。最后,
zip
文件夹保持为空。这主要是每个人在解决方案中使用的代码:

$zipname = 'adcs.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
if ($handle = opendir('.')) {
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != ".." && !strstr($entry,'.php')) {
        $zip->addFile($entry);
    }
  }
  closedir($handle);
}

$zip->close();
这个解决方案对我不起作用。我从一个问题中复制了它,所以
adcs.zip
不是我真正的zip档案名

我需要一个有效的解决方案,并调整为使用
$id
作为要压缩的目录的一部分


我该怎么做?

我想你应该解释为什么对每个人都有效的代码不适合你,这样我们就知道需要更改什么了。@阿尔瓦罗冈萨雷斯有时lib-zib不是用php编译的,所以我想他必须安装
ini_set('display_errors',1);错误报告(E_全部)将这一行放在脚本顶部,以检查发生了什么wrong@hassan如果他想要一个不需要Zip扩展的纯PHP解决方案,我想他只是在问这个问题。我知道,我说的是
ZipArchive
,特别是
libzip