php - 从目录中的文件数组创建 Zip

标签 php arrays zip

我正在尝试从我服务器上某个文件夹中包含的文件创建一个 Zip 文件。

这是我的代码:

$zip = new ZipArchive();
$dirArray = array();
$new_zip_file = $temp_unzip_path.'test_new_zip.zip';

$new = $zip->open($new_zip_file, ZIPARCHIVE::CREATE);
if ($new === TRUE) {
    $handle = opendir($temp_unzip_path);
    while (false !== ($entry = readdir($handle))) {
    $dirArray[] = $entry;
    }
    print_r ($dirArray);
    closedir($handle);
} else {
    echo 'Failed to create Zip';
}

$zip->close();

我是 PHP 的新手,所以我试图将 PHP 手册中的内容与我在网上找到的一些示例拼凑起来。

我已将 print_r 暂时放在那里,以确保将条目添加到数组中 - 这是我计划在未来放置其余 zip 函数的地方。

我的问题是它没有打印任何东西,所以我不知道文件是否被添加到 zip 中。

我的代码可能全错了(我希望没有),所以如果有人能指出我正确的方向,我将不胜感激。

谢谢。

最佳答案

我稍微修改了您的代码,它创建了一个 zip 文件,没有任何问题。 如果这对您不起作用,请检查目录 mydirectory

中的权限
<pre><?
$temp_unzip_path = './mydirectory/';
$zip = new ZipArchive();
$dirArray = array();
$new_zip_file = $temp_unzip_path.'test_new_zip.zip';

$new = $zip->open($new_zip_file, ZIPARCHIVE::CREATE);
if ($new === true) {
    $handle = opendir($temp_unzip_path);
    while (false !== ($entry = readdir($handle))) {
        if(!in_array($entry,array('.','..')))
        {
            $dirArray[] = $entry;
            $zip->addFile($temp_unzip_path.$entry,$entry);
        }
    }
    print_r ($dirArray);
    closedir($handle);
} else {
    echo 'Failed to create Zip';
}

$zip->close();
?>

关于php - 从目录中的文件数组创建 Zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14966212/

相关文章:

php - Highcharts - x 轴的格式日期以及自动缩放(来自 mysql 的数据)

php - 获取 Akeneo 中的类别列表

条件下具有多个参数的 PHP str_replace()

php - 如何使用 PHP 的共享访问签名在 azure 中上传 blob?

c - 根据条件匹配数组元素

java - Android zip 结构

c# - 提取 zip 文件并覆盖(在同一目录中 - C#)

C++ 不会从 .txt 文件中读取科学计数法数据

arrays - 如何从JSON传递List <dynamic>到List <MyModel>?

python - django 检查上传的文件是否为 zip 文件