04/10/2018, 18:03

Tạo file Zip bằng PHP

Việc nén (zip ) file bằng PHP thật ra rất đơn giản, nó cũng giống như là các bạn thực hiện thao tác zip file trên destop vậy. Hôm nay mình sẽ chia sẻ cho các bạn một hàm đơn giản là create_zip, và các bạn sẽ chỉ cần sử dụng lại hàm này mỗi khi cần nén file nào đó. /* creates a compressed ...

Việc nén (zip ) file bằng PHP thật ra rất đơn giản, nó cũng giống như là các bạn thực hiện thao tác zip file trên destop vậy. Hôm nay mình sẽ chia sẻ cho các bạn một hàm đơn giản là create_zip, và các bạn sẽ chỉ cần sử dụng lại hàm này mỗi khi cần nén file nào đó.

create-zip-using-php

/* creates a compressed zip file */
function create_zip($files = array(),$destination = ',$overwrite = false) {
	//if the zip file already exists and overwrite is false, return false
	if(file_exists($destination) && !$overwrite) { return false; }
	//vars
	$valid_files = array();
	//if files were passed in...
	if(is_array($files)) {
		//cycle through each file
		foreach($files as $file) {
			//make sure the file exists
			if(file_exists($file)) {
				$valid_files[] = $file;
			}
		}
	}
	//if we have good files...
	if(count($valid_files)) {
		//create the archive
		$zip = new ZipArchive();
		if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
			return false;
		}
		//add the files
		foreach($valid_files as $file) {
			$zip->addFile($file,$file);
		}
		//debug
		//echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;

		//close the zip -- done!
		$zip->close();

		//check to make sure the file exists
		return file_exists($destination);
	}
	else
	{
		return false;
	}
}

Và đây là cách sử dụng :

$files_to_zip = array(
	'preload-images/1.jpg',
	'preload-images/2.jpg',
	'preload-images/5.jpg',
	'kwicks/ringo.gif',
	'rod.jpg',
	'reddit.gif'
);
//if true, good; if false, zip creation failed
$result = create_zip($files_to_zip,'my-archive.zip');

Hàm mà mình giới thiệu cho các bạn có 2 tham số, tham số thứ nhất có thể là một file, hoặc là một mảng chứa nhiều file. Tham số thứ 2 sẽ là nơi chúng ta điền thông tin tên fize zip cũng như đường dẫn sẽ chứa file zip này. Hàm này sẽ trả về giá trị true nếu như việc nén file thành công, ngược lại sẽ trả về false.

Mình hy vọng với bài viết hôm nay, các bạn sẽ có thêm một kinh nghiệm lập trình php cũng như một hàm php hữu ích để các bạn sử dụng sau này.

Tags: code php code zip file

Chuyên Mục: PHP

Bài viết được đăng bởi webmaster

  • Tori Tran

    1 kiến thức hữu ích

Bài liên quan

Tạo file Zip bằng PHP

Việc nén (zip ) file bằng PHP thật ra rất đơn giản, nó cũng giống như là các bạn thực hiện thao tác zip file trên destop vậy. Hôm nay mình sẽ chia sẻ cho các bạn một hàm đơn giản là create_zip, và các bạn sẽ chỉ cần sử dụng lại hàm này mỗi khi cần nén file nào đó. /* creates a compressed ...

Trần Trung Dũng viết 18:03 ngày 04/10/2018

Giải nén file zip bằng PHP

Nếu như hôm qua mình giới thiệu tới các bạn bài viết Tạo file Zip bằng PHP . Thì hôm nay mình xin chia sẻ cho các bạn cách giải nén file zip bằng PHP. Trước hết chúng ta sẽ tạo ra 2 file là : functions.php và extractZip.php , các bạn nên nhớ không nên đặt 2 file này có cùng thư mục với ...

Bùi Văn Nam viết 18:03 ngày 04/10/2018

Upload và giải nén file zip trực tiếp trên web server bằng PHP

Hôm nay mình sẽ cùng với các bạn viết một ứng dụng nhỏ bằng PHP, trong ứng dụng này, chúng ta sẽ tạo một chức năng upload file zip, và file zip này sẽ tự động được giải nén ngay khi nó được up lên web server. Khi file zip được upload lên , chương trình sẽ tự động tạo một folder cùng tên với file ...

Hoàng Hải Đăng viết 17:47 ngày 04/10/2018

Tạo ảnh Watermark bằng PHP

Khi bạn muốn thêm một “dấu xác thực” ( watermark ) dưới dạng một ảnh nền vào một file ảnh trên web của bạn thì có rất nhiều cách để thực hiện như dùng photoshop, hoặc các công cụ khác trên mạng, hôm nay mình xin chia sẻ các bạn đoạn code có thể làm watermark cho hình của bạn mà ...

Trịnh Tiến Mạnh viết 17:42 ngày 04/10/2018

Bài 03: Tạo table(bảng) bằng PHP

Bảng trong MySQL là một tập hợp bao gồm các dòng và các cột. Trong MySQL mệnh đề CREATE TABLE cho phép bạn tạo mới một bảng trong CSDL. Trong CSDL MySQLDemo chúng ta đã tạo ở bài trước chúng ta sẽ tạo một bảng có tên là ' News ' bao gồm cột cột là id,title,slug,intro,content,create_at,order_no,i ...

Hoàng Hải Đăng viết 16:53 ngày 01/10/2018
0