উত্তর:
আপনি ZipArchive
একটি জিপ ফাইল তৈরি করতে এবং ক্লায়েন্টের কাছে স্ট্রিম করতে ক্লাসটি ব্যবহার করতে পারেন । কিছুটা এইরকম:
$files = array('readme.txt', 'test.html', 'image.gif');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();
এবং এটি স্ট্রিম করতে:
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
দ্বিতীয় লাইনটি ব্রাউজারটিকে ব্যবহারকারীদের কাছে একটি ডাউনলোড বাক্স উপস্থাপন করতে বাধ্য করে এবং ফাইলের নাম.জিপ নামের অনুরোধ করে। তৃতীয় লাইনটি alচ্ছিক তবে নির্দিষ্ট (প্রধানত পুরানো) ব্রাউজারগুলিতে বিষয়বস্তুর আকার নির্দিষ্ট না করে নির্দিষ্ট ক্ষেত্রে সমস্যা রয়েছে।
$zip = new ZipArchive;
পরিবর্তে হওয়া উচিত নয় $zip = new ZipFile;
?
এটি পিএইচপি-তে জিপ তৈরির একটি কার্যকরী উদাহরণ:
$zip = new ZipArchive();
$zip_name = time().".zip"; // Zip name
$zip->open($zip_name, ZipArchive::CREATE);
foreach ($files as $file) {
echo $path = "uploadpdf/".$file;
if(file_exists($path)){
$zip->addFromString(basename($path), file_get_contents($path));
}
else{
echo"file does not exist";
}
}
$zip->close();
একটি জিপ ফাইল তৈরি করুন, তারপরে ফাইলটি ডাউনলোড করুন, শিরোনামটি সেট করে, জিপ সামগ্রীগুলি পড়ুন এবং ফাইলটি আউটপুট করুন।
http://www.php.net/manual/en/function.ziparchive-addfile.php
আপনি পিএইচপি জিপ লিবের জন্য প্রস্তুত, এবং জেন্ড জিপ লিবও ব্যবহার করতে পারেন,
<?PHP
// create object
$zip = new ZipArchive();
// open archive
if ($zip->open('app-0.09.zip') !== TRUE) {
die ("Could not open archive");
}
// get number of files in archive
$numFiles = $zip->numFiles;
// iterate over file list
// print details of each file
for ($x=0; $x<$numFiles; $x++) {
$file = $zip->statIndex($x);
printf("%s (%d bytes)", $file['name'], $file['size']);
print "
";
}
// close archive
$zip->close();
?>
http://devzone.zend.com/985/dynamically-creating-compressed-zip-archives-with-php/
এবং এই http://www.php.net/manual/en/class.ziparchive.php এর জন্য পিএইচপি পিয়ার লাইবও রয়েছে