PHP8 ZipArchive::open

2024-02-27 11:09 更新

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::open — 打开ZIP文件存档

说明

public ZipArchive::open(string $filename, int $flags = 0): bool|int

打开新的或现有的 zip 存档以进行读取、写入或修改。

从 libzip 1.6.0 开始,空文件不再是有效的存档。

参数 

filename

要打开的 ZIP 存档的文件名。

flags

用于打开存档的模式。

  • ZipArchive::OVERWRITE

  • ZipArchive::创建

  • ZipArchive::RDONLY

  • zipArchive.EXCL (英语)

  • ZipArchive::CHECKCONS

返回值 

成功时返回 true,错误时返回 false 或以下错误代码之一:

ZipArchive::ER_EXISTS
文件已存在。
ZipArchive::ER_INCONS
Zip 存档不一致。
ZipArchive::ER_INVAL
无效参数。
ZipArchive::ER_MEMORY
Malloc 失败。
ZipArchive::ER_NOENT
没有这样的文件。
ZipArchive::ER_NOZIP
不是 zip 存档。
ZipArchive::ER_OPEN
无法打开文件。
ZipArchive::ER_READ
读取错误。
ZipArchive::ER_SEEK
查找错误。

示例 

示例 #1 打开并解压

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    echo 'ok';
    $zip->extractTo('test');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>

示例 #2 创建存档

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'file content goes here');
    $zip->addFile('data.txt', 'entryname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

示例 #3 创建临时存档

<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* truncate as empty file is not valid */
if ($res === TRUE) {
    $zip->addFile('data.txt', 'entryname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号