Tệp nén PHP

Nén file khi truyền qua internet có rất nhiều ưu điểm. Trong hầu hết các trường hợp, tổng kích thước kết hợp của tất cả các tệp ở định dạng nén sẽ giảm đi một khoảng nhỏ. Điều này có nghĩa là bạn sẽ tiết kiệm được một phần băng thông của mình và người dùng cũng sẽ nhận được tốc độ tải xuống nhanh hơn. Khi người dùng đã tải xuống một tệp, họ có thể giải nén tệp đó bất cứ khi nào họ muốn. Tóm lại, tính năng nén có thể giúp việc cung cấp tệp qua internet dễ dàng hơn rất nhiều cho bạn cũng như khách truy cập của bạn

Một yếu tố có thể khiến bạn không muốn nén tệp hoặc khiến quá trình này trở nên rất mệt mỏi là bạn có thể thực hiện thủ công. May mắn thay, PHP đi kèm với rất nhiều tiện ích mở rộng xử lý cụ thể việc nén và trích xuất tệp. Bạn có thể sử dụng các hàm có sẵn trong các tiện ích mở rộng này để tự động nén file trong PHP

Hướng dẫn này sẽ hướng dẫn bạn cách nén và giải nén (nén và giải nén) các tệp đến và từ kho lưu trữ zip trong PHP. Bạn cũng sẽ học cách xóa hoặc đổi tên tệp trong kho lưu trữ mà không cần giải nén chúng trước

Nén các tệp riêng lẻ trong PHP

Lớp PHP

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
20 có rất nhiều thuộc tính và phương thức có thể giúp bạn nén và giải nén tất cả các tệp của mình

Bạn có thể thêm từng tệp vào kho lưu trữ zip của mình hoặc thêm toàn bộ thư mục cùng một lúc. Trong cả hai trường hợp, bước đầu tiên là tạo một phiên bản

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
20 mới và sau đó gọi phương thức
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
22. Phương pháp này sẽ mở một kho lưu trữ zip mới để đọc, viết hoặc các sửa đổi khác. Có năm giá trị hợp lệ cho tham số
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
23 tùy chọn xác định cách xử lý các tình huống khác nhau

  • $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    24—Cờ này sẽ ghi đè nội dung trong kho lưu trữ được chỉ định nếu nó đã tồn tại
  • $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    25—Cờ này sẽ tạo một kho lưu trữ mới nếu nó chưa tồn tại
  • $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    26—Cờ này sẽ dẫn đến lỗi nếu kho lưu trữ đã tồn tại
  • $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    27—Cờ này sẽ yêu cầu PHP thực hiện kiểm tra tính nhất quán bổ sung trên kho lưu trữ và đưa ra lỗi nếu chúng không thành công
  • $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    28—Cờ này đã có sẵn trong PHP 7. 4. 3 và cho phép bạn mở kho lưu trữ ở chế độ chỉ đọc

Bạn có thể kiểm tra tài liệu của phương pháp này để tìm hiểu về các mã lỗi khác nhau được trả về trong trường hợp không mở được tệp. Nếu tệp zip được mở hoặc tạo thành công, phương thức sẽ trả về

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
29

Bạn sẽ phải sử dụng các kết hợp cờ khác nhau trong các tình huống khác nhau để tránh bất kỳ kết quả không mong muốn nào. Ví dụ: sử dụng cờ

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
30 nếu bạn không quan tâm đến nội dung của kho lưu trữ hiện có. Nó sẽ không tạo một kho lưu trữ mới nếu không tồn tại với tên cụ thể đó

Bạn có thể sử dụng kết hợp

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
30 và
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
25 để ghi đè lên một kho lưu trữ hiện có và tạo một kho lưu trữ mới nếu không tồn tại với tên cụ thể đó. Đây là một ví dụ

1
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);

Khi sử dụng cờ

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
25, bạn sẽ nhận thấy rằng nó bắt đầu sửa đổi một kho lưu trữ hiện có nếu một kho lưu trữ đã tồn tại. Đây có thể là điều bạn thực sự muốn làm, nhưng nó cũng có thể gây ra một số hậu quả không mong muốn. Bạn có thể sử dụng kết hợp
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
25 và
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
26 để đảm bảo rằng bạn chỉ đang làm việc với các kho lưu trữ không tồn tại trước đây

1
$zip->open('new_compressed_files.zip', ZipArchive::EXCL|ZipArchive::CREATE);

Khi bạn đã mở kho lưu trữ thành công, bạn có thể sử dụng phương pháp

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
36 để thêm bất kỳ tệp nào từ một đường dẫn nhất định vào kho lưu trữ của mình. Tham số
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
37 là đường dẫn của tệp mà bạn muốn thêm vào kho lưu trữ. Tham số
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
38 được sử dụng để gán tên cho tệp để lưu trữ bên trong kho lưu trữ. Bạn có thể gọi
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
39 mỗi khi bạn muốn thêm tệp mới vào kho lưu trữ của mình

Sau khi thêm tất cả các tệp cần thiết vào kho lưu trữ, bạn chỉ cần gọi phương thức

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
40 để đóng và lưu các thay đổi

Giả sử bạn có một trang web cho phép người dùng tải xuống các tệp phông chữ cho các phông chữ khác nhau cùng với thông tin cấp phép để sử dụng chúng. Các tệp như thế này sẽ là ví dụ hoàn hảo về lưu trữ tự động bằng PHP. Đoạn mã sau chỉ cho bạn cách thực hiện chính xác điều đó

1

2
3
$zip = new ZipArchive();
4
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
0
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
1
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
2
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
3
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
4
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
5
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
6
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
7
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
2
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
9
1
0
1
1
1
2_______13_______3

Chúng tôi bắt đầu bằng cách tạo một phiên bản

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
20 và sau đó sử dụng phương pháp
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
42 để tạo kho lưu trữ của chúng tôi. Phương pháp
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
39 thêm thực tế của chúng tôi. tập tin phông chữ ttf và. txt vào kho lưu trữ

Bạn nên lưu ý rằng các tệp gốc nằm trong thư mục fonts/Monoton. Tuy nhiên, mã PHP đặt chúng trực tiếp bên trong thư mục gốc của kho lưu trữ của chúng tôi. Bạn có thể thay đổi cấu trúc thư mục cũng như tên của các tệp đi vào kho lưu trữ

Nén nhiều tệp từ một thư mục

Sau một thời gian, việc thêm các tệp riêng lẻ vào kho lưu trữ của bạn có thể trở nên mệt mỏi. Ví dụ: bạn có thể muốn tạo một kho lưu trữ tất cả. pdf hoặc. các tệp png trong một thư mục. Phương pháp

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
44 sẽ tỏ ra rất hữu ích trong trường hợp này. Nhược điểm duy nhất của phương pháp này là bạn mất quyền kiểm soát vị trí của các tệp riêng lẻ trong kho lưu trữ. Tuy nhiên, bạn vẫn có thể tác động đến cấu trúc thư mục bên trong kho lưu trữ bằng cách sử dụng tham số
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
45. Các tùy chọn được truyền dưới dạng một mảng kết hợp

  • $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    46—Giá trị bạn chỉ định cho
    $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    46 được thêm tiền tố vào đường dẫn cục bộ của tệp trong kho lưu trữ
  • $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    48—Giá trị bạn gán cho
    $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    48 được sử dụng để xóa tiền tố phù hợp khỏi đường dẫn của các tệp khác nhau được thêm vào kho lưu trữ
  • $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    50—Đặt giá trị của
    $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    50 thành
    $zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
    
    29 sẽ xóa mọi thứ khỏi đường dẫn của tệp ngoài tên của nó. Trong trường hợp này, các tệp được thêm vào thư mục gốc của kho lưu trữ

Điều quan trọng cần nhớ là việc xóa đường dẫn được thực hiện trước khi thêm tiền tố vào giá trị được chỉ định trong

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
46

Đoạn mã sau sẽ làm rõ việc sử dụng

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
54 và tất cả các tùy chọn này

1
$zip = new ZipArchive();
2
1
7
3
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
2
4
$zip->open('new_compressed_files.zip', ZipArchive::EXCL|ZipArchive::CREATE);
1
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
1
$zip->open('new_compressed_files.zip', ZipArchive::EXCL|ZipArchive::CREATE);
3
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
3
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
5
$zip->open('new_compressed_files.zip', ZipArchive::EXCL|ZipArchive::CREATE);
6
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
7
$zip->open('new_compressed_files.zip', ZipArchive::EXCL|ZipArchive::CREATE);
8
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
9
1
1
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
2

1
1
0

Như thường lệ, chúng tôi bắt đầu bằng cách tạo một phiên bản

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
20 và sau đó sử dụng phương pháp
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
42 để tạo kho lưu trữ của chúng tôi. Chúng tôi cũng chỉ định các giá trị khác nhau cho khóa
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
46 trong mảng
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
45 mỗi lần trước khi gọi phương thức
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
54. Bằng cách này, chúng tôi có thể xử lý một nhóm tệp cụ thể tại một thời điểm và cung cấp các tùy chọn lưu trữ phù hợp

Trong trường hợp đầu tiên, chúng tôi lặp lại trên tất cả. jpg trong thư mục đèn và đặt chúng vào thư mục light_wallpapers trong kho lưu trữ. Tương tự như vậy, chúng tôi lặp lại trên tất cả các. ttf trong thư mục tài liệu và sau đó đặt chúng vào thư mục có tên font_files trong kho lưu trữ của chúng tôi. Cuối cùng, chúng tôi lặp lại tất cả các. jpg và. png trong tài liệu của chúng tôi cùng một lúc và đặt tất cả chúng cùng nhau trong thư mục hình ảnh

Như bạn có thể thấy, các giá trị trong tham số

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
45 rất hữu ích trong việc tổ chức nội dung bên trong kho lưu trữ

Sửa đổi hoặc ghi đè tài liệu lưu trữ

Bạn có thể kết hợp các cờ và tùy chọn khác nhau để đạt được cấu trúc thư mục và tệp cụ thể bên trong kho lưu trữ. Như tôi đã đề cập trước đó, chúng ta có thể sử dụng phương pháp

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
42 để mở một kho lưu trữ mới hoặc hiện có để đọc và ghi

Trong phần này, chúng ta sẽ tìm hiểu những khác biệt có thể phát sinh do sự kết hợp khác nhau của các cờ được truyền cho phương thức

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
42 và
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
45 được truyền cho phương thức
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
54. Giả sử không có kho lưu trữ nào có tên nén_files. zip và chúng tôi chạy đoạn mã sau

1

2
3
$zip = new ZipArchive();
4
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
1
2
0
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
3
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
5
2
3
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
7
2
5
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
9
1
1
1
0
1
2
1
4_______13_______3

Nó sẽ lấy tất cả các tệp hình ảnh từ thư mục tệp/hình ảnh và đặt chúng vào bên trong thư mục hình nền ở thư mục gốc của kho lưu trữ. Đường dẫn của các tệp hình ảnh trong kho lưu trữ sẽ là hình nền/tệp/hình ảnh

Bạn có thể loại bỏ đường dẫn ban đầu của tất cả các hình ảnh bằng cách sử dụng bộ tùy chọn sau

1
3
3

Các tệp hình ảnh sẽ được lưu trữ trực tiếp bên trong hình nền và đường dẫn hình ảnh gốc sẽ bị loại bỏ

Như tôi đã đề cập trước đó,

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
25 sẽ tạo một kho lưu trữ mới hoặc bắt đầu sửa đổi một kho lưu trữ hiện có nếu nó đã tồn tại. Bạn sẽ không nhận được bất kỳ cảnh báo nào về việc một kho lưu trữ hiện có đang bị sửa đổi. Điều này có nghĩa là nếu bạn thực thi mã trong phần này để tạo kho lưu trữ và sau đó thực hiện lại mã đó sau khi thay thế các tùy chọn ban đầu bằng tùy chọn mới, bạn sẽ nhận được một số kết quả không mong muốn

Kho lưu trữ sau đó sẽ chứa một thư mục hình nền với các tệp/hình ảnh thư mục con cũng như các hình ảnh trực tiếp bên trong thư mục hình nền. Có thể hơi bối rối khi bạn lần đầu tiên bắt đầu và nó có thể khiến bạn thắc mắc tại sao

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
45 mà bạn đang thiết lập không được tôn trọng

Luôn đảm bảo rằng bạn sử dụng

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
67 nếu bạn muốn ghi đè mọi thứ bên trong kho lưu trữ nếu nó đã tồn tại nhưng không muốn mã bị lỗi nếu không

Cũng nên nhớ rằng tệp trống không còn được coi là tệp lưu trữ hợp lệ kể từ libzip 1. 6. 0

Trích xuất nội dung từ kho lưu trữ

Lớp

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
20 có một phương thức tên là
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
69 để trích xuất nội dung của một kho lưu trữ. Bạn có thể sử dụng nó để trích xuất mọi thứ bên trong kho lưu trữ hoặc chỉ một số tệp cụ thể. Tham số
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
70 có thể được sử dụng để chỉ định một tên tệp sẽ được trích xuất hoặc bạn có thể sử dụng nó để chuyển một mảng tệp

Một điểm quan trọng cần nhớ là bạn cần chỉ định đường dẫn thích hợp của tệp bên trong kho lưu trữ để giải nén nó. Ví dụ: chúng tôi đã lưu trữ tệp phông chữ có tên AlegreyaSans-Light. ttf ở phần trước. Tệp được lưu trữ trong kho lưu trữ trong thư mục có tên font_files. Điều này có nghĩa là đường dẫn bạn cần chỉ định trong tham số

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
70 sẽ là font_files/AlegreyaSans-Light. ttf và không chỉ đơn giản là AlegreyaSans-Light. tf

Cấu trúc thư mục và tệp sẽ được giữ nguyên trong quá trình trích xuất và các tệp sẽ được trích xuất trong thư mục tương ứng của chúng

1

2
3
$zip = new ZipArchive();
4
1
7_______0_______1
$zip = new ZipArchive();
2
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
3
1
0
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
5
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
2
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
7
1
3

Nếu bạn bỏ qua tham số thứ hai, phương thức sẽ trích xuất tất cả các tệp trong kho lưu trữ

Kiểm soát nhiều hơn đối với kho lưu trữ

Lớp

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
20 còn có rất nhiều phương thức và thuộc tính khác giúp bạn có thêm thông tin về kho lưu trữ trước khi trích xuất toàn bộ nội dung của nó

Bạn có thể đếm số lượng tệp trong kho lưu trữ bằng phương pháp

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
73. Một tùy chọn khác là sử dụng thuộc tính
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
74. Chúng có thể được sử dụng để lặp lại tất cả các tệp trong kho lưu trữ và chỉ trích xuất những tệp bạn cần—hoặc bạn có thể làm điều gì đó khác với chúng, chẳng hạn như xóa chúng khỏi kho lưu trữ

Trong ví dụ sau, chúng tôi đang xóa tất cả các tệp trong kho lưu trữ có chứa từ Italic. Mã tương tự có thể được sử dụng để xóa tất cả các tệp không chứa một từ cụ thể. Bạn cũng có thể lặp lại các tệp này và thay thế một từ cụ thể bằng một từ khác

1

2
3
$zip = new ZipArchive();
4
1
7
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
1
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
3
4
8
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
5
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
7
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
01
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
9
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
03
1
1
1
2
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
06
1
4
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
08
1
5
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
10
1
7
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
12
1
9
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
2

1
1
0
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
17
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
18
1
3

Trong đoạn mã trên, chúng tôi đang sử dụng

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
75 để xóa một tệp riêng lẻ. Tuy nhiên, bạn cũng có thể sử dụng nó để xóa toàn bộ thư mục

Có thể sử dụng một chức năng tương tự

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
76 để thay đổi tên của bất kỳ tệp nào trong kho lưu trữ. Bạn sẽ gặp lỗi nếu tệp có tiêu đề
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
77 đã tồn tại

Suy nghĩ cuối cùng

Chúng tôi đã đề cập đến một loạt các phương thức rất hữu ích của lớp

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
20 sẽ giúp việc nén và trích xuất tệp tự động trong PHP trở nên dễ dàng. Giờ đây, bạn có thể nén các tệp riêng lẻ hoặc một nhóm tệp cùng lúc, dựa trên tiêu chí của riêng bạn. Tương tự, bạn sẽ có thể trích xuất bất kỳ tệp cụ thể nào từ kho lưu trữ mà không ảnh hưởng đến nội dung khác

Với sự trợ giúp của

$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
73 và
$zip->open('my_compressed_files.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE);
74, bạn sẽ có nhiều quyền kiểm soát hơn đối với các tệp riêng lẻ và việc đổi tên hoặc xóa chúng sẽ cực kỳ dễ dàng. Bạn nên xem qua tài liệu ít nhất một lần để đọc thêm về các chức năng như vậy