phpzip壓縮
A. 如何安裝 php 的zip模塊
zip 是php的一個擴展,用於支持zip文件壓縮和解壓
按照下面的步驟配置:
1. 用記事本編輯你的 php.ini 文件,搜索 zip.dll 然後把這一行前面的 ; (分號)去掉,保存 php.ini 注意,這一行的上面應該有很多諸如 ;php_***.dll 的,否則搜索的位置不正確,再次搜索
2. 重新啟動你的 WEB 伺服器。IIS直接在 開始 運行 裡面輸入 iisreset, Apache 通過管理器先停止再啟動即可
B. 怎樣用php壓縮解壓rar,zip文件
要用PHP壓縮解壓文件,常用的方法是調用命令行去執行解壓縮操作
可以用exec()
、system()等函數調用shell命令
Linux下解壓縮命令是tar
[-cxtzjvfpPN]
文件與目錄,tar命令可以壓縮解壓.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip這些類型的文件
Linux下默認無法使用rar格式的,要另外安裝RAR
for
Linux,然後使用rar和unrar命令解壓縮rar格式的壓縮文件
C. php如何壓縮一個文件夾裡面所有的文件到zip文件裡面
//函數:文件壓縮
//壓縮參數:需要壓縮的文件或文件夾(文件可為數組),壓縮後的zip文件名及存放路徑,壓縮類型1:文件夾2:文件,後續操作1:壓縮後下載;2:存放在伺服器上(默認為/@Upload下)
//壓縮文件夾示例:Tozip("./","../".date("d-H-i-s").".zip",1,2);
//壓縮文件示例:
// $aaa=array("../1.txt","../2.txt");
// Tozip($aaa,"../2.zip",2);FunctionTozip($Path,
$ZipFile,
$Typ=1,
$Todo=1){//IF(!is_writeable($Path)){Exit("文件夾不可寫!");}$Path=Str_iReplace("\\","/",($Path));IF(Is_Null($Path) OrEmpty($Path) Or!IsSet($Path)){ReturnFalse;}IF(Is_Null($ZipFile) OrEmpty($ZipFile) Or!IsSet($ZipFile)){ReturnFalse;}
Include_once("inc/Class_Zip.php");$zip=NewPHPZip;IF(SubStr($Path,-1,1)=="/"){$Path=SubStr($Path,0,
StrLen($Path)-1);}
OB_end_clean();Switch($Typ){Case"1":$zip-ZipDir($Path,
$ZipFile,
$Todo);Break;Case"2":$zip-ZipFile($Path,
D. 如何用PHP創建一個加密的zip壓縮文件
/* creates a compressed zip file */function create_zip($files = array(),$destination = '',$overwrite = false) { //if the zip file already exists and overwrite is false, return false if(file_exists($destination) && !$overwrite) { return false; } //vars $valid_files = array(); //if files were passed in... if(is_array($files)) { //cycle through each file foreach($files as $file) { //make sure the file exists if(file_exists($file)) { $valid_files[] = $file; } } } //if we have good files... if(count($valid_files)) { //create the archive $zip = new ZipArchive(); if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) { return false; } //add the files foreach($valid_files as $file) { $zip->addFile($file,$file); } //debug //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status; //close the zip -- done! $zip->close(); //check to make sure the file exists return file_exists($destination); } else { return false; }}
E. php使用pclzip類實現文件壓縮的方法(附pclzip類下載地址)
本文實例講述了php使用pclzip類實現文件壓縮的方法。分享給大家供大家參考,具體如下:
使用PclZIp(zip格式)壓縮,首先需要下載它的包文件(可點擊此處本站下載)。PclZip功能還是蠻強大的,它可以進行壓縮和解壓,以及一些添加和刪除的類的方法等等。當然了這些內容我們都可以在網上查找的到,沒必要都得記住。我們只要在需要使用的時候自己可以很快的在網上找到使用方法就可以了。首先我們需要的就是要將下載的庫文件進行引入,如
<?php
include('pclzip/pclzip.lib.php');
?>
//括弧裡面的地址改成自己的pclzip.lib.php
文件所在地址,
//它的所有的功能都在pclzip.lib.php裡面
引入之後我們就可以進行使用了,下面是我使用時簡單寫的一個方法。
<?php
$zipname
=
"test.zip";
//壓縮包的名稱
$zipnames
=
'/zipfiles/'.$zipname;
//壓縮包所在路徑
$z
=
new
PclZip($zipnames);
//實例化這個PclZip類
$v_list
=
$z->create('file.txt,data/text.txt,folder');
//將文件進行壓縮
if
($v_list
==
0)
{
die("Error
:
".$archive->errorInfo(true));
//如果有誤,提示錯誤信息。
}
?>
這個一個簡單的zip壓縮就做好了,在這個方法中我們主要就是使用了PclZip裡面的PclZip類以及它裡面創建壓縮包的方法create。從上面的例子我們可以看到下面這個內容
<?php
PclZip($zip_filename);
?>
//裡面是該壓縮包的名稱以及所在路徑。並不是把名稱寫上就可以了。
//如果路徑不對是無法找到的。
<?php
PclZip::create($filelist,
[optional
arguments]);
?>
//create方法來創建壓縮包。
//$filelist可以用數組包含文件的名稱和文件夾名稱或者是一個字元串來包含.
//如果是多個文件的話可以用逗號來隔開,如上面的例子。
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP操作zip文件及壓縮技巧總結》、《php文件操作總結》、《php正則表達式用法總結》、《PHP運算與運算符用法總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
F. 怎麼用php寫一個表單上傳zip格式的壓縮包並解壓到根目錄的指定目錄中
<?php
if($_FILES["file"]["error"]>0){
echo"<script>console.log('ReturnCode:".$_FILES["file"]["error"]."');</script>";
}
else{
if(!file_exists("upload/".$_FILES["file"]["name"])){
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/".$_FILES["file"]["name"]);
echo"Storedin:"."upload/".$_FILES["file"]["name"];
system('zip解壓縮命令');
}
else{
system('zip解壓縮命令');
}
}
?>
因為php即使拓展了zip庫,也不能夠實現解壓縮,而且拓展zip庫會要更改php.ini,所以推介下載7z的命令行版本,用系統命令解決。╮( ̄▽ ̄"")╭
G. PHP-php生成zip壓縮文件如何給該文件加解壓縮密碼
<?php
//需開啟配置php_zip.dll
//phpinfo();
header("Content-type:text/html;charset=utf-8");
functionget_zip_originalsize($filename,$path){
//先判斷待解壓的文件是否存在
if(!file_exists($filename)){
die("文件$filename不存在!");
}
$starttime=explode('',microtime());//解壓開始的時間
//將文件名和路徑轉成windows系統默認的gb2312編碼,否則將會讀取不到
$filename=iconv("utf-8","gb2312",$filename);
$path=iconv("utf-8","gb2312",$path);
//打開壓縮包
$resource=zip_open($filename);
$i=1;
//遍歷讀取壓縮包裡面的一個個文件
while($dir_resource=zip_read($resource)){
//如果能打開則繼續
if(zip_entry_open($resource,$dir_resource)){
//獲取當前項目的名稱,即壓縮包裡面當前對應的文件名
$file_name=$path.zip_entry_name($dir_resource);
//以最後一個「/」分割,再用字元串截取出路徑部分
$file_path=substr($file_name,0,strrpos($file_name,"/"));
//如果路徑不存在,則創建一個目錄,true表示可以創建多級目錄
if(!is_dir($file_path)){
mkdir($file_path,0777,true);
}
//如果不是目錄,則寫入文件
if(!is_dir($file_name)){
//讀取這個文件
$file_size=zip_entry_filesize($dir_resource);
//最大讀取6M,如果文件過大,跳過解壓,繼續下一個
if($file_size<(1024*1024*6)){
$file_content=zip_entry_read($dir_resource,$file_size);
file_put_contents($file_name,$file_content);
}else{
echo"<p>".$i++."此文件已被跳過,原因:文件過大,->".iconv("gb2312","utf-8",$file_name)."</p>";
}
}
//關閉當前
zip_entry_close($dir_resource);
}
}
//關閉壓縮包
zip_close($resource);
$endtime=explode('',microtime());//解壓結束的時間
$thistime=$endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);
$thistime=round($thistime,3);//保留3為小數
echo"<p>解壓完畢!,本次解壓花費:$thistime秒。</p>";
}
$size=get_zip_originalsize('20131101.zip','temp/');
?>