فشرده سازی فایل ها به وسیله php

فشرده سازی فایل ها به وسیله php

سلام وقت بخیر،

در بسیاری از مواقع به این نیاز پیدا خواهیم کرد که فایل هایی را فشرده کنیم(با فرمت zip) تا حجم کمتری داشته باشند و سپس آن ها را ذخیره کنیم و یا آن را برای دانلود کردن در اختیار کاربر قرار دهیم، امروز می خواهم قطعه کدی را معرفی کنم که با استفاده از آن بتوان به راحتی فایل ها را با استفاده از این تابع فشرده کرد، به قطعه کد زیر توجه نمایید:

function create_zip($files = array(),$destination = '',$overwrite = false) {
	if(file_exists($destination) && !$overwrite) { return false; }
	$valid_files = array();
	if(is_array($files)) {
		foreach($files as $file) {
			if(file_exists($file)) {
				$valid_files[] = $file;
			}
		}
	}
	if(count($valid_files)) {
		$zip = new ZipArchive();
		if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
			return false;
		}
		foreach($valid_files as $file) {
			$zip->addFile($file,$file);
		}
		$zip->close();
		return file_exists($destination);
	} else {
		return false;
	}
}

پارامتر اول تابع، آرایه ای از فایل هایی است که می خواهیم فشرده کنیم. پارامتر دوم مقصد ذخیره سازی فایل zip است و پارامتر سوم overwrite است که به صورت پیشفرض false در نظر گرفته شده است واگر مقدار true باشد اگر فایل zip با همان نام وجود داشته باشد با فایل جدید جایگزین می شود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.