ကဗ်ာ/ရသ/နည္းပညာ

Create Zip file using PHP

May 11, 2014

php သံုးၿပီး Zip ဖိုင္တစ္ခုဖန္တီးၾကည့္ရေအာင္ ။
အရမ္းမခက္ပါဘူး PHP မွာ Zip file ဖန္တီးႏိုင္ဖို႕အတြက္ ZipArchive ဆိုတဲ့ Class က Built in ရွိၿပီးသားပါ။
အဲ့ဒီ Class ကုိဘယ္လိုသံုးရမလဲဆိုတာေလးသိတာနဲ႕ server ေပၚက ဖိုဒါေတြကုိ Zip ခ်ံဳ႕ၿပီး download link
ဖန္တီးေပးႏိုင္ပါတယ္။နမူနာေလး စမ္းၾကည့္ရေအာင္။ျမန္ေအာင္တစ္ခုၿပီးတစ္ခါရွင္းျပသြားပါမယ္။
<?php
$zip=new ZipArchive();//ZipArchive ကုိ $zip အေနနဲ႕ Object ေဆာက္လုိက္ပါတယ္
$zip->open('example.zip',ZipArchive::CREATE);//Open method ေခၚသံုးပါတယ္။ZipArchive::CREATE ကဒုတိယ Parameter မွာေရးထံုးအရထည့္ကုိထည့္ေပးရမွာပါ။
//example.zip အျဖစ္ေျပာင္းၿပီးZip ပါမယ္ေျပာင္းမယ့္ဖိုဒါကေတာ့Server မွာရွိေနၿပီးသား image နာမည္နဲ႕ဖိုဒါျဖစ္ပါတယ္။
//အဲဒီဖိုဒါကုိ Scandir နဲ႕စစ္လိုက္ေတာ့ Array return ျပန္ရပါတယ္။အဲ့ဒီ array က အခန္း[1],[2]က directory ျဖစ္လို႕ျဖဳတ္ပစ္ဖို႕လိုပါတယ္။
//သိခ်င္ရင္ $files ကုိ print_r() ထုတ္ၾကည့္လုိက္ပါ။
$files=scandir('image');
unset($files[0],$files[1]);
//unset() နဲ႕ directory ကုိျဖဳတ္ေပးလိုက္ပါၿပီ။
//ဖိုဒါတစ္ခုမွာဖိုင္ေတြအမ်ားႀကီးရွိေနမွာမို႕လို႕ဖိုင္တစ္ခုစီကုိ Looping သံုးၿပီး zip လုပ္လိုက္ပါတယ္။

foreach($files as $file){
$zip->addFile("image/$file","files/$file");//addFile()မွာ socure နဲ႕ Desination ကုိထည့္ေပးရပါတယ္။
//echo $file;
}
//အားလံုးၿပီးရင္ျပန္ပိတ္ေပးရပါမယ္
$zip->close();
ၿပီးတာနဲ႕တန္းၿပီး Download ခ်ႏိုင္ဖို႕အတြက္ ဆိုရင္ေတာ့ အခုလိုHeader("location: ??")ေလးသံုးလုိက္လို႕ရပါတယ္
header("location:example.zip");
?>
ကဲ .... စမ္းၾကည့္လိုက္ပါဦး ။

No comments:

Post a Comment