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

打開新的或現(xiàn)有的 zip 存檔以進(jìn)行讀取、寫入或修改。

從 libzip 1.6.0 開始,空文件不再是有效的存檔。

參數(shù) 

filename

要打開的 ZIP 存檔的文件名。

flags

用于打開存檔的模式。

  • ZipArchive::OVERWRITE

  • ZipArchive::創(chuàng)建

  • ZipArchive::RDONLY

  • zipArchive.EXCL (英語)

  • ZipArchive::CHECKCONS

返回值 

成功時返回 true,錯誤時返回 false 或以下錯誤代碼之一:

ZipArchive::ER_EXISTS
文件已存在。
ZipArchive::ER_INCONS
Zip 存檔不一致。
ZipArchive::ER_INVAL
無效參數(shù)。
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 創(chuàng)建存檔

<?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 創(chuàng)建臨時存檔

<?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';
}
?>


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號