3

我正在尝试从我服务器上文件夹中包含的文件创建一个 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 中。

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

谢谢。

4

1 回答 1

3

我稍微修改了您的代码,它创建了一个没有任何问题的 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();
?>
于 2013-02-19T20:09:02.437 回答