PHP zip解压缩类PclZip使用方法总结
PHP zip解压缩方法很多,除了php自带的解压缩扩展实现外,下面介绍一种功能强大PHP ZIP加压缩类。
PHP zip解压缩类PclZip介绍
PclZip library能够压缩与解压缩Zip格式的压缩档(WinZip、PKZIP);且能对此类类档案进行处理,包括产生压缩档、列出压缩档的内容以及解压缩档案等等。由于能够在伺服器端进行压缩与解压缩的动作,所以相当方便使用。
PclZip定义一个PclZip类别,其类别物件可视为一个ZIP档案,亦提供method来进行处理。
如何使用PHP zip解压缩类PclZip
1.基础
所有的功能都由pclzip.lib.php这个档案提供,PclZip library可于其首页(www.phpconcept.net/pclzip/index.en.php)下载。所有的PKZIP档案其实就是一个PclZip的类别物件。当产生一个PclZip档案(ie, PclZip类别物件),就会先产生一个压缩档,且档名已经指定,但此压缩档的内容尚未存在:
< ?PHP <br /> require_once('pclzip.lib.php'); <br /> $archive = new PclZip("archive.zip"); <br />?>
此物件提供了一些public method可用来处理此档案。
2.参数
每一个method有其各自可使用的参数,包括有必须与非必须的参数:< ?PHP <br /> require_once('pclzip.lib.php'); <br /> $archive = new PclZip('archive.zip'); <br /> <br /> $v_list = $archive->add('dev/file.txt', <br /> PCLZIP_OPT_REMOVE_PATH, 'dev'); <br />?>
上例中的'dev/file.txt'就是必须参数;'PCLZIP_OPT_REMOVE_PATH'则为非必须参数。当然有些method也可以只包含非必须的参数:
< ?PHP <br /> $list = $archive->extract(PCLZIP_OPT_PATH, "folder", <br /> PCLZIP_OPT_REMOVE_PATH, "data", <br /> PCLZIP_CB_PRE_EXTRACT, "callback_pre_extract",); <br />?>
上例中原本压缩档内档案存放的路径为/data,不过你可以指定解压缩至/folder中。此外,在解压缩之前,会呼叫callback function('callback_pre_extract()'),此function可让使用者在解压缩的过程中变更档案存放路径与档名,或是选择某些档案不解压缩。
3.回传值
每个method所回传的值可能会不同,将会在每个method中说明。不过大部分的method回传0、error或是阵列。
4.错误处理
从版本1.3之后,错误处理已经整合至PclZip类别中,当一个method回传错误码,可以得知一些额外的讯息以方便错误处理:* errorName():回传错误名称
* errorCode():回传错误码
* errorInfo():回传错误的描述接下来会举几个例子来说明如何使用PclZip。PclZip实例1、产生ZIP压缩档
PclZip($zipname):为PclZip constructor,$zipname为PKZIP压缩档的档名。
主要是产生一个PclZip物件,即一个PKZIP压缩档;但此时,只有压缩档产生出来,并做一些检查(例如是否有开启zlib extension...等),除此之外,并没有做其他动作。
create($filelist, [optional arguments list]):将参数$filelist指定的档案或目录(包含当中所有档案与子目录)加入上述所产生的压缩档中。
而非必要的参数则能够修改压缩档内的档案存放路径。
此method可用的参数可以参考网志(www.phpconcept.net/pclzip/man/en/index.php)。
下面的示例说明如何产生PKZIP压缩档(档名为archive.zip),并将file.txt、data/text.txt以及目录folder(包含当中的档案与子目录)加入刚刚产生的archive.zip中:
< ?PHP<br /> include_once('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> $v_list = $archive->create('file.txt,data/text.txt,folder');<br /> if ($v_list == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br />?>
下面的示例说明基本上与上例一样产生archive.zip,但在将file.txt与text.txt压缩于其中时,将路径由data/改为install/ ;因此,在archive.zip中这两个档案的路径会是install/file.txt与install/text.txt
< ?PHP<br /> include_once('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> $v_list = $archive->create('data/file.txt,data/text.txt',<br /> PCLZIP_OPT_REMOVE_PATH, 'data',<br /> PCLZIP_OPT_ADD_PATH, 'install');<br /> if ($v_list == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br /><p>?></p>
PHP zip解压缩类PclZip实例
1、列出压缩档内容
listContent( ) :列出压缩档中的内容,包括档案的属性与目录:
<span style="font-size: 14px;">< ?PHP</span><br /> include_once('pclzip.lib.php');<br /> $zip = new PclZip("test.zip");<br /> <br /> if (($list = $zip->listContent()) == 0) {<br /> die("Error : ".$zip->errorInfo(true));<br /> }<br /> <br /> for ($i=0; $i<sizeof ($list); $i++) {<br /> for(reset($list[$i]); $key = key($list[$i]); next($list[$i])) {<br /> echo "File $i / [$key] = ".$list[$i][$key]."<br />";<br /> }<br /> echo "<br />";<br /> }<br /><p>?><span style="font-size: 14px;">
File 0 / [filename] = data/file1.txt
File 0 / [stored_filename] = data/file1.txt
File 0 / [size] = 53
File 0 / [compressed_size] = 36
File 0 / [mtime] = 1010440428
File 0 / [comment] =
File 0 / [folder] = 0
File 0 / [index] = 0
File 0 / [status] = okFile 1 / [filename] = data/file2.txt
File 1 / [stored_filename] = data/file2.txt
File 1 / [size] = 54
File 1 / [compressed_size] = 53
File 1 / [mtime] = 1011197724
File 1 / [comment] =
File 1 / [folder] = 0
File 1 / [index] = 1
File 1 / [status] = ok
2、解压缩档案
extract([options list]) :解压缩PKZIP中的档案或目录。[options list]可用的参数。
这些参数能让使用者在解压缩的时候有更多的选项,譬如指定变更解压缩档案的路径、指定只解压缩某些档案或不解压缩某些档案或者是将档案解压缩成字串输出(可用于readme档)。下例是一个简单的解压缩档案示例,将压缩档archive.zip内的档案解压缩至目前的目录:
<span style="font-size: 14px;">< ?PHP</span><br /> require_once('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> <br /> <br /> if ($archive->extract() == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br />?>
下例是进阶的解压缩档案使用,archive.zip中所有档案都解压缩于data/中,而特别指明在install/release中的所有档案也直接丢于data/中,而非data/install/ release:
< ?PHP<br /> include('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> if ($archive->extract(PCLZIP_OPT_PATH, 'data',<br /> PCLZIP_OPT_REMOVE_PATH, 'install/release') == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br /><p>?>
项目地址:http://www.phpconcept.net/pclzip/

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alipay PHP ...

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

시스템이 다시 시작된 후 UnixSocket의 권한을 자동으로 설정하는 방법. 시스템이 다시 시작될 때마다 UnixSocket의 권한을 수정하려면 다음 명령을 실행해야합니다.

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

이 기사에서는 프레임 워크에 사용자 정의 기능 추가, 아키텍처 이해, 확장 지점 식별 및 통합 및 디버깅을위한 모범 사례에 중점을 둡니다.
