php將文件夾打包成zip文件,參考代碼如下:
創(chuàng)新互聯(lián)-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、綿陽(yáng)電信機(jī)房機(jī)柜租用、等保安全、私有云建設(shè)等企業(yè)級(jí)互聯(lián)網(wǎng)基礎(chǔ)服務(wù),聯(lián)系電話(huà):18980820575
function?addFileToZip($path,$zip){
$handler=opendir($path);?//打開(kāi)當(dāng)前文件夾由$path指定。
while(($filename=readdir($handler))!==false){
if($filename?!=?"."??$filename?!=?".."){//文件夾文件名字為'.'和‘..’,不要對(duì)他們進(jìn)行操作
if(is_dir($path."/".$filename)){//?如果讀取的某個(gè)對(duì)象是文件夾,則遞歸
addFileToZip($path."/".$filename,?$zip);
}else{?//將文件加入zip對(duì)象
$zip-addFile($path."/".$filename);
}
}
}
@closedir($path);
}
$zip=new?ZipArchive();
if($zip-open('images.zip',?ZipArchive::OVERWRITE)===?TRUE){
addFileToZip('images/',?$zip);?//調(diào)用方法,對(duì)要打包的根目錄進(jìn)行操作,并將ZipArchive的對(duì)象傳遞給方法
$zip-close();?//關(guān)閉處理的zip文件
}
第一步,你需要對(duì)php的設(shè)置如下:
php.ini: output_buffering = Off output_handler = ob_gzhandler zlib.output_compression = Off zlib.output_compression_level = -1
第二步,你需要在apache下增加如下設(shè)置:
AddOutputFilter DEFLATE html php js css
這樣就可以對(duì)html php js css進(jìn)行g(shù)zip壓縮了。
第三步,你需要使用如下php壓縮html并輸出到客戶(hù)端的函數(shù):
function compress_html($string) { return ltrim(rtrim(preg_replace(array("/ *([^ ]*) */","http://","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/[ ]+/'), array("\\1",'','','','','',''),$string))); }
上面的這個(gè)正則表達(dá)式,很強(qiáng)大的哦,經(jīng)過(guò)我本人親自測(cè)試可使用。
通過(guò)以上方法,你就可以將你的html代碼壓縮然后輸出給客戶(hù)端了。不信你可以查看源代碼,就是一行,網(wǎng)頁(yè)瞬間壓縮很小。
本文實(shí)例講述了php使用pclzip類(lèi)實(shí)現(xiàn)文件壓縮的方法。分享給大家供大家參考,具體如下:
使用PclZIp(zip格式)壓縮,首先需要下載它的包文件(可點(diǎn)擊此處本站下載)。PclZip功能還是蠻強(qiáng)大的,它可以進(jìn)行壓縮和解壓,以及一些添加和刪除的類(lèi)的方法等等。當(dāng)然了這些內(nèi)容我們都可以在網(wǎng)上查找的到,沒(méi)必要都得記住。我們只要在需要使用的時(shí)候自己可以很快的在網(wǎng)上找到使用方法就可以了。首先我們需要的就是要將下載的庫(kù)文件進(jìn)行引入,如
?php
include('pclzip/pclzip.lib.php');
?
//括號(hào)里面的地址改成自己的pclzip.lib.php
文件所在地址,
//它的所有的功能都在pclzip.lib.php里面
引入之后我們就可以進(jìn)行使用了,下面是我使用時(shí)簡(jiǎn)單寫(xiě)的一個(gè)方法。
?php
$zipname
=
"test.zip";
//壓縮包的名稱(chēng)
$zipnames
=
'/zipfiles/'.$zipname;
//壓縮包所在路徑
$z
=
new
PclZip($zipnames);
//實(shí)例化這個(gè)PclZip類(lèi)
$v_list
=
$z-create('file.txt,data/text.txt,folder');
//將文件進(jìn)行壓縮
if
($v_list
==
0)
{
die("Error
:
".$archive-errorInfo(true));
//如果有誤,提示錯(cuò)誤信息。
}
?
這個(gè)一個(gè)簡(jiǎn)單的zip壓縮就做好了,在這個(gè)方法中我們主要就是使用了PclZip里面的PclZip類(lèi)以及它里面創(chuàng)建壓縮包的方法create。從上面的例子我們可以看到下面這個(gè)內(nèi)容
?php
PclZip($zip_filename);
?
//里面是該壓縮包的名稱(chēng)以及所在路徑。并不是把名稱(chēng)寫(xiě)上就可以了。
//如果路徑不對(duì)是無(wú)法找到的。
?php
PclZip::create($filelist,
[optional
arguments]);
?
//create方法來(lái)創(chuàng)建壓縮包。
//$filelist可以用數(shù)組包含文件的名稱(chēng)和文件夾名稱(chēng)或者是一個(gè)字符串來(lái)包含.
//如果是多個(gè)文件的話(huà)可以用逗號(hào)來(lái)隔開(kāi),如上面的例子。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP操作zip文件及壓縮技巧總結(jié)》、《php文件操作總結(jié)》、《php正則表達(dá)式用法總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP基本語(yǔ)法入門(mén)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
//函數(shù):文件壓縮 //壓縮參數(shù):需要壓縮的文件或文件夾(文件可為數(shù)組),壓縮后的zip文件名及存放路徑,壓縮類(lèi)型1:文件夾2:文件,后續(xù)操作1:壓縮后下載;2:存放在服務(wù)器上(默認(rèn)為/@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("文件夾不可寫(xiě)!");}$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,
網(wǎng)站題目:php中如何壓縮數(shù)據(jù)處理,php 圖片壓縮
鏈接地址:http://chinadenli.net/article38/hegepp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、定制開(kāi)發(fā)、電子商務(wù)、品牌網(wǎng)站建設(shè)、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容