백엔드 개발 PHP 튜토리얼 PHP执行zip与rar解压缩方法实现代码_PHP

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

Jun 01, 2016 pm 12:17 PM
rar zip 압축을 푼다

Zip:PclZip http://www.phpconcept.net/pclzip/index.en.php
Rar:PECL rar http://pecl.php.net/package/rar
以往过去要在php下执行解压缩程序,无非最常见的方法是写command 然后用exec()等执行函式去跑
这在Windows下或许可以,但换成Unix话会碍于帐号权限问题而无法顺利执行
那有没有那种本身就有提供函式可以直接使用而不需要去下command去跑的方法呢
答桉有(话说找了好几天才找到可以用的方法......XD)
先讲Zip,由于php内建本身就有提供zip相关函式(但须先要有ziplib函式)但不是很好用
就光extract来讲,内建函式只负责单纯解压缩档桉出来,而不是会按照资料夹依序解压缩出来
这样就失去extract的作用
而要讲的 PclZip 这支,本身就有提供 extension 了,故有没有Ziplib就没差
且免安装,只需要再用他时 include 进来就可以了
例如: 这样
此外在extract部分,则是会按照资料夹顺序依序解压缩出来,而并非单纯解压缩档桉出来
相关用法像这样
复制代码 代码如下:
require_once('pclzip.lib.php');
$archive = new PclZip('archive.zip');
if ($archive->extract() == 0) { /*解压缩路径跟原始档相同路径*/
die("Error : ".$archive->errorInfo(true));
}
?>

当然也可以指定解压缩路径,像这样
复制代码 代码如下:
include('pclzip.lib.php');
$archive = new PclZip('archive.zip');
if ($archive->extract(PCLZIP_OPT_PATH, 'data') { /*data换成其他路径即可*/
die("Error : ".$archive->errorInfo(true));
}
?>

如果再写一支自动建立目录的script会更好,因为函式本身不会判断压缩档裡第一层是档桉还是资料夹(这我想其他相关函式也做不到吧!!!)
再来是Rar,这问题比较大,由于php本身没提供rar相关函式,所以需要求助第三方函式来用
所幸有这个 PECL(The PHP Extension Community Library)
裡面有个 rar 的 package 可以使用
不过须得手动安装才行
若是 Unix 话,可以参考下列安装法

fetch http://pecl.php.net/get/rar-x.x.x.tgz
gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

当然若是 freebsd 话,用 port 装会更快

cd /usr/ports/archivers/pecl-rar
make
make install

记得安装完后须 restart apache
安装完后可以做测试
复制代码 代码如下:
$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");
/*example.rar换成其他档桉即可*/
$entries_list = rar_list($rar_file);
print_r($entries_list);
?>

比较要注意的,若是用 port 安装话,版本会比较新(官网只有到0.3.1,port 安装话已经到0.3.4),所以用法上会有些出入
但extract用法上并无差异
相关用法像这样
复制代码 代码如下:
$rar_file = rar_open('example.rar') or die("Can't open Rar archive");
/*example.rar换成其他档桉即可*/
$entries = rar_list($rar_file);
foreach ($entries as $entry) {
$entry->extract('/dir/extract/to/'); /*/dir/extract/to/换成其他路径即可*/
}
rar_close($rar_file);
?>

跟Zip部分一样,若搭配自动建立目录会更好

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

리눅스에서 rar 압축을 푸는 방법 리눅스에서 rar 압축을 푸는 방법 Jan 23, 2024 pm 03:48 PM

압축 해제 단계: 1. RAR 도구가 시스템에 설치되어 있는지 확인하십시오. 2. "unrar x file.rar" 명령을 사용하여 RAR 파일의 압축을 해제합니다. 3. "unrar x *.rar" 명령을 사용하여 여러 RAR의 압축을 해제합니다. 4. 압축 해제 경로를 지정합니다. 5. RAR 파일의 내용을 나열합니다. 6. 암호화된 RAR 파일을 압축 해제합니다. 8. 지정된 디렉터리에 압축을 해제하고 디렉터리 구조를 유지합니다. RAR 파일을 일괄 처리합니다.

HTML 파일을 ZIP으로 압축하는 최고의 가이드 HTML 파일을 ZIP으로 압축하는 최고의 가이드 Apr 09, 2024 pm 04:09 PM

HTML 파일을 ZIP으로 압축하면 페이지 로딩 속도가 향상될 수 있습니다. 방법은 다음과 같습니다. 온라인 도구(예: FileOptimizer, TinyPNG) 사용 명령줄 도구(예: gzip, 7-zip) 사용 Node.js 스크립트 사용(zlib 모듈 사용)

리눅스 압축 zip 명령을 사용하는 방법 리눅스 압축 zip 명령을 사용하는 방법 Oct 08, 2023 pm 01:25 PM

zip 명령은 Linux 시스템에서 매우 유용한 압축 도구입니다. zip 명령을 사용하면 파일과 디렉터리를 zip 파일로 쉽게 압축하여 저장 공간을 절약하고 전송을 용이하게 할 수 있습니다. zip 명령의 기본 구문은 "zip [옵션] [압축 파일 이름] [압축할 파일 또는 디렉터리]"입니다.

Windows 11에서 파일의 압축을 푸는 방법 Windows 11에서 파일의 압축을 푸는 방법 Oct 11, 2023 pm 09:09 PM

Windows 11에서 파일의 압축을 푸는 방법을 모르면 특정 소프트웨어를 설치하지 못하거나 다른 사람이 보낸 파일을 아카이브 형식으로 보지 못할 수도 있습니다. 이 프로세스는 수행하기가 매우 간단하며 오늘 가이드에서는 Windows 11에서 수행하는 가장 좋은 방법을 보여 드리겠습니다. Windows 11에서 파일의 압축을 푸는 방법은 무엇입니까? 1. 상황에 맞는 메뉴를 사용하여 PC에서 zip 파일을 찾아 마우스 오른쪽 버튼을 클릭합니다. 다음으로 "모두 추출"을 선택하십시오. 추출 위치를 선택하고 "추출" 버튼을 클릭하세요. Windows가 파일을 추출할 때까지 기다립니다. 2. 타사 도구를 사용하여 WinZip을 다운로드하고 설치합니다. 추출하려는 zip 파일을 두 번 클릭합니다. 이제 추출 대상을 클릭하고 대상 폴더를 선택하십시오. 삼.

Xunlei에서 무료로 파일 압축을 푸는 방법 무료로 파일 압축을 푸는 방법 Xunlei에서 무료로 파일 압축을 푸는 방법 무료로 파일 압축을 푸는 방법 Mar 12, 2024 pm 03:04 PM

이 플랫폼을 사용하면 파일의 무료 압축 해제 방법을 사용할 수 있으므로 다운로드한 일부 압축 패키지를 열 수 있으며 물론 위에서 직접 이해할 수 있는 파일 등이 많이 있습니다. 많은 사용자가 이에 대해 잘 알지 못하기 때문에 일부 기능을 더 잘 사용할 수도 있습니다. 나중에 다른 파일을 다운로드할 때 더 편리하게 사용할 수 있고 효과도 여전히 좋습니다. 전혀 다른 다양한 활용효과를 알려드릴께요. 왜 이런 유용한 기능을 아직 모르셨나요? 친구들, 서둘러서 살펴보세요. 아래의 전략 설명에서 이 짜릿함을 놓칠 수 없습니다.

centos7의 압축 해제 파일 명령(zip)에 대한 자세한 설명 centos7의 압축 해제 파일 명령(zip)에 대한 자세한 설명 Jan 07, 2024 pm 06:30 PM

1. 압축 폴더는 zip 파일 [root@cgls]#zip-rmydata.zipmydata2입니다. mydatabak 디렉터리 [root@cgls]#unzipmydata.zip-dmydatabak3.mydata01 폴더에 mydata.zip의 압축을 풀면 mydata02.txt가 압축됩니다. mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4. mydata.zip 파일을 직접 압축 해제합니다. [root@cgls]#unzipmydata.zip5.

Mac에서 rar의 압축을 풀 때 사용할 소프트웨어 Mac에서 rar의 압축을 풀 때 사용할 소프트웨어 Mar 03, 2023 pm 04:18 PM

Mac에서 rar 압축을 풀기 위한 소프트웨어: 1. 완전 무료이고 컴팩트하며 사용하기 매우 쉬운 압축 및 압축 풀기 도구인 Unarchiver 2. RAR 형식 압축 패키지 압축 풀기를 지원하는 실용적인 무료 압축 및 압축 풀기 도구인 Keka 3. 360 Compression Master는 RAR 파일 압축 해제를 완벽하게 지원하는 무료 압축 및 압축 해제 소프트웨어입니다. 4. MacZip은 RAR을 포함한 20개 이상의 압축 형식 압축 해제를 지원합니다. 5. BetterZip ;

7-Zip 소프트웨어로 파일 압축을 푸는 방법 - 7-Zip 소프트웨어로 압축된 패키지의 비밀번호를 설정하고 취소하는 방법​ 7-Zip 소프트웨어로 파일 압축을 푸는 방법 - 7-Zip 소프트웨어로 압축된 패키지의 비밀번호를 설정하고 취소하는 방법​ Mar 18, 2024 pm 05:25 PM

7-Zip은 완전 무료 오픈 소스 압축 해제 소프트웨어일 뿐만 아니라 압축 해제 기능도 매우 강력하여 비디오, 문서, 폴더, 사진 및 기타 파일에 대한 압축 작업을 지원할 수 있습니다. 그렇다면 7-Zip 소프트웨어는 어떻게 파일의 압축을 해제합니까? 7-Zip 소프트웨어에서 압축 패키지의 비밀번호를 설정하고 취소하는 방법은 무엇입니까? 7-Zip으로 파일을 압축하는 방법: 1. 7-Zip 소프트웨어를 열고 압축해야 하는 파일이나 폴더를 선택한 다음 메뉴에서 [추가] 옵션을 클릭합니다. 2. 창이 나타나면 압축파일 형식을 선택한 후, 아래 [확인]을 눌러 압축하세요. 7-Zip으로 압축 파일의 압축을 푸는 방법: 1. 7-Zip 소프트웨어를 열고 압축을 풀 압축 패키지를 선택한 후 메뉴에서 [압축 풀기]를 클릭합니다.

See all articles