PHP cung cấp một tập hợp các hàm để làm việc với tệp ZIP, giúp bạn mở, đọc và thao tác với nội dung của tệp nén ZIP. Các hàm này rất hữu ích trong việc nén hoặc giải nén dữ liệu trong các ứng dụng web, hoặc thao tác với các tệp ZIP một cách hiệu quả. Bài viết này sẽ giới thiệu và giải thích chi tiết các hàm liên quan đến việc xử lý tệp ZIP trong PHP.
1. zip_close() - Đóng tệp ZIP đã mở
Hàm zip_close() được sử dụng để đóng một tệp ZIP đã mở bằng zip_open().
Cú pháp:
zip_close(resource $zip);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
zip_close($zip);
}
?>2. zip_entry_close() - Đóng một mục tệp ZIP
Hàm zip_entry_close() đóng một mục tệp ZIP đã mở trước đó bằng zip_entry_open().
Cú pháp:
zip_entry_close(resource $zip_entry);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
while ($zip_entry = zip_read($zip)) {
zip_entry_open($zip, $zip_entry);
zip_entry_close($zip_entry);
}
zip_close($zip);
}
?>3. zip_entry_compressedsize() - Kích thước nén của mục tệp ZIP
Hàm zip_entry_compressedsize() trả về kích thước của mục tệp ZIP sau khi đã nén.
Cú pháp:
zip_entry_compressedsize(resource $zip_entry);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
if ($zip_entry = zip_read($zip)) {
echo 'Kích thước nén: ' . zip_entry_compressedsize($zip_entry);
}
zip_close($zip);
}
?>4. zip_entry_compressionmethod() - Phương pháp nén của mục tệp ZIP
Hàm zip_entry_compressionmethod() trả về phương pháp nén được sử dụng cho mục tệp ZIP.
Cú pháp:
zip_entry_compressionmethod(resource $zip_entry);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
if ($zip_entry = zip_read($zip)) {
echo 'Phương pháp nén: ' . zip_entry_compressionmethod($zip_entry);
}
zip_close($zip);
}
?>5. zip_entry_filesize() - Kích thước không nén của mục tệp ZIP
Hàm zip_entry_filesize() trả về kích thước của mục tệp ZIP trước khi nén.
Cú pháp:
zip_entry_filesize(resource $zip_entry);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
if ($zip_entry = zip_read($zip)) {
echo 'Kích thước không nén: ' . zip_entry_filesize($zip_entry);
}
zip_close($zip);
}
?>6. zip_entry_name() - Tên của mục tệp ZIP
Hàm zip_entry_name() trả về tên của mục tệp ZIP hiện tại.
Cú pháp:
zip_entry_name(resource $zip_entry);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
if ($zip_entry = zip_read($zip)) {
echo 'Tên tệp: ' . zip_entry_name($zip_entry);
}
zip_close($zip);
}
?>7. zip_entry_open() - Mở một mục tệp ZIP
Hàm zip_entry_open() mở một mục trong tệp ZIP để đọc nội dung.
Cú pháp:
zip_entry_open(resource $zip, resource $zip_entry);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
if ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip, $zip_entry)) {
echo 'Đã mở mục tệp: ' . zip_entry_name($zip_entry);
zip_entry_close($zip_entry);
}
}
zip_close($zip);
}
?>8. zip_entry_read() - Đọc nội dung của mục tệp ZIP
Hàm zip_entry_read() đọc nội dung của mục tệp ZIP đang mở. Số byte đọc được có thể được chỉ định tùy chọn.
Cú pháp:
zip_entry_read(resource $zip_entry, int $length = 1024);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
if ($zip_entry = zip_read($zip)) {
zip_entry_open($zip, $zip_entry);
echo zip_entry_read($zip_entry, 1024); // Đọc 1024 byte đầu tiên
zip_entry_close($zip_entry);
}
zip_close($zip);
}
?>9. zip_open() - Mở một tệp ZIP
Hàm zip_open() mở một tệp ZIP để có thể thao tác với các mục bên trong nó.
Cú pháp:
zip_open(string $filename);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
echo 'Đã mở tệp ZIP';
zip_close($zip);
}
?>10. zip_read() - Đọc một mục tệp ZIP
Hàm zip_read() trả về một mục tiếp theo trong tệp ZIP đã mở trước đó.
Cú pháp:
zip_read(resource $zip);Ví dụ:
<?php
$zip = zip_open('example.zip');
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo 'Tên mục: ' . zip_entry_name($zip_entry);
}
zip_close($zip);
}
?>Kết luận
Bộ các hàm liên quan đến ZIP trong PHP giúp bạn dễ dàng làm việc với các tệp nén. Bạn có thể mở, đọc, lấy thông tin về các mục trong tệp ZIP và xử lý chúng một cách linh hoạt. Sử dụng các hàm này rất hữu ích trong việc xử lý các tệp nén trên máy chủ, giúp tối ưu hóa việc lưu trữ và truyền tải dữ liệu.









