php將文件夾打包成zip文件,參考代碼如下:

創新互聯-云計算及IDC服務提供商,涵蓋公有云、IDC機房租用、綿陽電信機房機柜租用、等保安全、私有云建設等企業級互聯網基礎服務,聯系電話:18980820575
function?addFileToZip($path,$zip){
$handler=opendir($path);?//打開當前文件夾由$path指定。
while(($filename=readdir($handler))!==false){
if($filename?!=?"."??$filename?!=?".."){//文件夾文件名字為'.'和‘..’,不要對他們進行操作
if(is_dir($path."/".$filename)){//?如果讀取的某個對象是文件夾,則遞歸
addFileToZip($path."/".$filename,?$zip);
}else{?//將文件加入zip對象
$zip-addFile($path."/".$filename);
}
}
}
@closedir($path);
}
$zip=new?ZipArchive();
if($zip-open('images.zip',?ZipArchive::OVERWRITE)===?TRUE){
addFileToZip('images/',?$zip);?//調用方法,對要打包的根目錄進行操作,并將ZipArchive的對象傳遞給方法
$zip-close();?//關閉處理的zip文件
}
第一步,你需要對php的設置如下:
php.ini: output_buffering = Off output_handler = ob_gzhandler zlib.output_compression = Off zlib.output_compression_level = -1
第二步,你需要在apache下增加如下設置:
AddOutputFilter DEFLATE html php js css
這樣就可以對html php js css進行gzip壓縮了。
第三步,你需要使用如下php壓縮html并輸出到客戶端的函數:
function compress_html($string) { return ltrim(rtrim(preg_replace(array("/ *([^ ]*) */","http://","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/[ ]+/'), array("\\1",'','','','','',''),$string))); }
上面的這個正則表達式,很強大的哦,經過我本人親自測試可使用。
通過以上方法,你就可以將你的html代碼壓縮然后輸出給客戶端了。不信你可以查看源代碼,就是一行,網頁瞬間壓縮很小。
本文實例講述了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程序設計有所幫助。
//函數:文件壓縮 //壓縮參數:需要壓縮的文件或文件夾(文件可為數組),壓縮后的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,
網站題目:php中如何壓縮數據處理,php 圖片壓縮
鏈接地址:http://www.yijiale78.com/article38/hegepp.html
成都網站建設公司_創新互聯,為您提供外貿網站建設、搜索引擎優化、定制開發、電子商務、品牌網站建設、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯