`
bsdgo
  • 浏览: 35666 次
社区版块
存档分类
最新评论

PclZip使用指南

    博客分类:
  • php
 
阅读更多

关于PKZIP文档

每一个PKZIP文档都由一个PclZip对象表示,当创建一个PclZip文档时(基于PclZip对象),文档的名称将和对象关联。这时候,文档还没有被检查,也没有被读取,它甚至还不存在。


require_once('pclzip.lib.php');
$archive = new PclZip("archive.zip");

接下来文档将被PclZip对象的公共方法操作。当文档不存在时,要创建一个文档,必须使用‘create()’方法,该文档包含的文件列表和相关文件夹将作为该方法的参数。

如果文档已经存在,它的内容可以通过方法‘listContent()’或者‘extract()’来读取。

参数与变量

每一个方法都拥有自己的参数,方法声明中有关于它们的描述。这次参数可能是强制的也可能是可选的。例如:


require_once('pclzip.lib.php');
$archive = new PclZip('archive.zip');
$v_list = $archive->add('dev/file.txt',PCLZIP_OPT_REMOVE_PATH, 'dev');
 

这里的第一个参数'dev/file.txt',是强制的,而‘PCLZIP_OPT_REMOVE_PATH, ...’则是可选的。

一些方法也可以仅仅只使用一些可选的参数:


$list  =  $archive->extract(PCLZIP_OPT_PATH, "folder",
PCLZIP_OPT_REMOVE_PATH, "data",
PCLZIP_CB_PRE_EXTRACT, "callback_pre_extract",
PCLZIP_CB_POST_EXTRACT, "callback_post_extract");

这里,文件将被解压缩到‘folder’目录,而'data'目录将被移除。

在从文档解压缩每一个单独的文件之前,你也可以调用一个用户自定义的回调函数,(这里是‘callback_pre_extract()’)。这个函数可以在解压缩过程中改变解压路径和文件名,或者跳过这个特定的文件(不解压该文件)。

在一个文件解压完毕时,另一个回调函数将被调用,该函数将使得在解压下一个文件之前,用户可以对当前文件采取某些操作。


$list = $archive->extract(PCLZIP_OPT_PATH, "folder" ,PCLZIP_OPT_REMOVE_ALL_PATH);

这里文件将被解压到'folder'目录,并且所有被存储的文件路径将被移除,即使它们是不同的路径。通过这个特性,用户不需要指定需要被移除的解 压路径。(即压缩文档中如果含有目录data,那么文件夹中的文件将被直接解压到folder目录,解压缩后data目录将被删除)

这些简单的例子展示了这些可选参数如何工作,他们还有更好的用处(当前会有点复杂)。他们可以让新特性的介绍变得很容易,而不用去改变方法声明。

预定义参数,他们的使用方法和相关限制在“可选参数” 一节有详细介绍。在对每个方法的描述中,将给出可选参数的列表。

返回值

每个方法的返回值可能不同,在方法声明中有描述。

但是绝大多数方法在错误时都返回0(设置了错误标识时),成功时返回一个包含文件信息的数组。

数组的每个数据都描述一个文件或者目录,一些的文件/目录的属性和最后一次操作文件/目录后的状态。

每个文件都通过以下参数来描述:

filename

文件的名称

它是方法被调用时所给予的名字。

解压缩时,它是文件被解压缩后的真实名称(而不是存储在文档中的名称)。

stored_filename

文件被存储的名称。

size

文件的真实大小

compressed_size

压缩文档中的大小

mtime

文档的最后修改日期和时间(UNIX timestamp)

comment

与文件相关的摘要

folder

true | false :表明文件名是一个文件还是一个目录。

index

文件在文档中的索引(如果已设置)。

content

已解压文件的内容,只有当参数TPCLZIP_OPT_EXTRACT_IN_STRING 设置时呈现

status

操作导致的结果(依赖于操作类型)

可选值有:

ok

操作成功。

filtered

文件或目录没有被解压(被用户过滤)。

already_a_directory

文件没有被解压,因为一个同名文件夹已经存在。

newer_exist

文件没有被解压,因为一个同名文件已经存在并且被写保护。

write_protected

文本没有被解压,因为一个较新的文件存在。

path_creation_fail

文本没有被解压,因为当创建路径是发生错误。

write_error

文本没有被解压,因为在写操作时发送错误。

read_error

文本没有被解压,因为在读操作时发生错误。

invalid_header

文本没有被解压,因为文件头损坏。

skipped

文本没有被解压或添加,因为一个用户回调函数请求跳过它。
(1.3版中有介绍)

filename_too_long

文本没有被添加,因为文件名过长。(最大255个字符)。
(1.3版中有介绍)
分享到:
评论

相关推荐

    Laravel开发-pclzip

    在本篇文章中,我们将深入探讨如何在Laravel项目中集成和使用`pclzip`库。 首先,我们需要将`pclzip`库引入到我们的Laravel项目中。由于`pclzip`不是一个通过Composer可以直接安装的包,我们需要手动下载并将其放在...

    pclzip.php

    "Readme-说明.htm"文件提供了安装和使用的基本指南。 解压功能: PCLZip库的核心功能之一是解压ZIP文件。使用`pclzip()`函数,可以轻松地完成这个任务。例如: ```php require_once('pclzip.lib.php'); $archive =...

    PHP借助pclzip类对文件压缩和解压

    要解压缩一个.zip文件,可以使用`pclzip_list_content()`获取文件列表,然后使用`pclzip_extract()`提取文件。例如,解压缩`compressed_files.zip`到`extracted_files`目录: ```php $archive_path = '...

    PclZip(PHP压缩解压工具) 2.8.2.zip

    PclZip能够压缩与解压缩Zip格式的压缩档(WinZip、PKZIP);且能对此类类档案进行处理,包括产生压缩档、列出压缩档的内容以及解压缩档案等等。由于能够在伺服器端进行压缩与解压缩的动作,所以相当方便使用。 ...

    pclzip压缩文件上传

    PclZip是一个很强大的压缩与解压缩zip文件的PHP类,PclZip library能够压缩与解压缩Zip格式的压缩档(WinZip、PKZIP);且能对此类类档案进行处理,包括产生压缩档、列出压缩档的内容以及解压缩档案等等。同时也可以...

    PclZip:强大的PHP压缩与解压缩zip类

    以下是一个简单的示例,展示如何使用PclZip创建和解压缩ZIP文件: ```php require_once('pclzip.lib.php'); // 创建一个新的ZIP文件 $archive = new PclZip('example.zip'); $archive->add('file1.txt', PCLZIP_...

    php的zip解压缩类pclzip使用示例

    PclZip是一个针对PHP开发的高效、强大且易于使用的压缩与解压缩库,它专门处理ZIP格式的文件。这个库能够创建新的ZIP文件,列出ZIP文件的内容,以及提取ZIP文件中的文件。由于其简单、易用的特性,PclZip在PHP开发中...

    pclzip.zip php打包压缩解压插件

    `使用说明.txt`文件提供了关于如何使用Pclzip库的详细指南,包括安装步骤、基本用法、方法调用示例和注意事项。开发者应该首先阅读这个文档,以确保正确理解和使用库的功能。 在处理ZIP文件时,Pclzip库提供了一些...

    PclZip(PHP压缩解压工具) v2.8.2.zip

    PclZip能够压缩与解压缩Zip格式的压缩档(WinZip、PKZIP);...由于能够在伺服器端进行压缩与解压缩的动作,所以相当方便使用。 PclZip定义一个PclZip类别,其类别物件可视为一个ZIP档案,亦提供method

    php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)

    之后,您可以使用PclZip对象实例的create方法来添加文件。在create方法中,您可以传入一个字符串或数组,指定需要添加到存档中的文件列表。如果指定的文件不存在或者路径不正确,则压缩操作会失败,并可通过error...

    PclZip(PHP压缩解压工具).7z

    2. **创建ZIP文件**:使用`PclZip`类的`create()`方法可以创建一个新的ZIP文件。此方法接受一个文件列表,每个文件都可以是本地文件路径或者数据流,并可设置相应的压缩级别。 3. **添加文件到ZIP**:如果ZIP文件...

    thinkPHP使用pclzip打包备份mysql数据库的方法

    本文实例讲述了thinkPHP使用pclzip打包备份mysql数据库的方法。分享给大家供大家参考,具体如下: PclZip介绍 PclZip library能够压缩与解压缩Zip格式的压缩档(WinZip、PKZIP);且能对此类类档案进行处理,包括产生...

    composer中文文档

    它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor )...

    PHP在线解压缩

    4. **使用PCLZip解压缩** 在使用PCLZip解压缩文件时,首先需要引入`pclzip.lib.php`文件,然后创建PCLZip对象,调用`extract()`方法。以下是一个简单的示例: ```php require_once 'pclzip.lib.php'; $archive =...

    php基于web的衡水游泳馆管理系统(源码 + 说明文档)

    php基于web的衡水游泳馆管理系统... 2系统相关技术 7 ...2.2 B/S架构 7 2.3 MySQL 介绍 7 2.4MySQL环境配置 7 3系统需求分析 9 3.1系统功能 9 3.2可行性研究 10 3.2.1 经济可行性 10 3.2.2 技术可行性 10 ...6系统测试 28

    PHP在线快速压缩解压ZIP文件

    以下是一个简单的示例,展示如何使用PCLZip库创建一个ZIP文件: ```php require_once('pclzip.lib.php'); $archive = new PclZip('example.zip'); $file_list = array('file1.txt', 'file2.txt', 'directory/file3...

    PHP执行zip与rar解压缩方法实现代码

    等执行函式去跑 这在Windows下或许可以,但换成Unix话会碍于帐号权限问题而无法顺利执行 那有没有那种本身就有提供函式可以直接使用而不需要去下command去跑的方法呢 答桉有(话说找了好几天才找到可以用的方法……...

Global site tag (gtag.js) - Google Analytics