Hướng dẫn php save zip file - php lưu tệp zip

zip là một định dạng nén phổ biến, được sử dụng để làm giảm dung lượng các định dạng file, để có thể dễ dàng gửi chúng đi nơi khác. PHP sử dụng class ZipArchive để hỗ trợ nén một hoặc nhiều file tới một file zip. ZipArchive là class built-in của PHP nên bạn có thể dễ dàng gọi chúng mà không phải thực hiện bất cứ một cài đặt gì.
ZipArchive là class built-in của PHP nên bạn có thể dễ dàng gọi chúng mà không phải thực hiện bất cứ một cài đặt gì.

Zip 1 file

open('output/data.zip', ZipArchive::CREATE || ZipArchive::OVERWRITE)) {
    // Add files
    if (!$zipArchive->addFile('data/test-1.txt', 'test-1.txt')) {
        printf("zip file error");
        exit;
    }
} else {
    printf('Open file error');
    exit;
}

// Close ZipArchive
$zipArchive->close();

Kết quả:

Hướng dẫn php save zip file - php lưu tệp zip

Zip 1 folder

open('output/data.zip', ZipArchive::CREATE || ZipArchive::OVERWRITE)) {

    // Add folder
    $dir = opendir('data/');
    while($file = readdir($dir)) {
        if(is_file("data/${file}")) {
            if (!$zipArchive->addFile("data/${file}", $file)) {
                printf("zip file error");
                exit;
            }
        }
    }

} else {
    printf('Open file error');
    exit;
}

// Close ZipArchive
$zipArchive->close();

Kết quả:

Hướng dẫn php save zip file - php lưu tệp zip

Zip 1 folder

open('output/data.zip')) {
    // Extracts to current directory
    $zipArchive->extractTo('./');
} else {
    printf('Open file error');
    exit;
}

// Close ZipArchive
$zipArchive->close();

Unzip file

Làm sao để thực hiện nén file .zip bằng PHP, bài viết này sẽ giới thiệu và hướng dẫn các bạn thực hiện nén file .zip bằng PHP một cách đơn giản.

Nội dung chính ShowShow

  • File nén ZiP là gì?
  • Nén (compress) file trong PHP
  • Nén (compress) thư mục trong PHP
  • File nén ZiP là gì?
  • Nén (compress) file trong PHP
  • Nén (compress) thư mục trong PHP
  • File nén ZiP là gì?
  • Nén (compress) file trong PHP
  • Nén (compress) thư mục trong PHP

Ngoài nén file thường thì chúng ta rất cần nén thư mục để lưu hành, thực ra việc zip thư mục chỉ là chúng ta code quét tất cả các file trong thư mục và đưa vào file zip, ví dụ code dưới đây sẽ zip 1 thư mục lằm cùng với file thực thi

    File nén ZiP là gì?

    Mục lục

    File có phần mở rộng .zip hiện nay khá phổ biến và hiện nay được hỗ trợ ở hầu hết các hệ điều hành nếu không muốn nói là tất cả.

    File .zip là một dạng file nén dùng giảm dung lượng của một hay nhiều file mà nó chứa bên trong nhằm tối ưu khả năng lưu trữ, di chuyển và truyền tải trên Internet. Sự phổ biến của nó đến mức hiện nay “zip” được xem như một động từ. Ví dụ “Bạn zip file lại rồi gửi cho mình nhé” là một cách nói khá phổ biến cho hành động nén file để giảm dung lượng lưu trữ.

    Nén (compress) file trong PHP

    Trong PHP, file .zip có thể tạo hoặc chính sửa thông qua một class được hỗ trợ sẵn là ZipArchive. Quá trình nén và đóng gói file nén sẽ kết thúc khi hàm close() hoặc destroyed() được gọi.

    open('data.zip', ZipArchive::CREATE || ZipArchive::OVERWRITE)) {
            // Add files with text
        	$zipArchive->addFromString('test.txt', 'www.tinhoc88.com');
    
            // Close ZipArchive
            $zipArchive->close();
        } else {
            printf('Lỗi! mở file.');
            exit;
        }
    ?>

    Kết quả

    Nén (compress) thư mục trong PHP

    Ngoài nén file thường thì chúng ta rất cần nén thư mục để lưu hành, thực ra việc zip thư mục chỉ là chúng ta code quét tất cả các file trong thư mục và đưa vào file zip, ví dụ code dưới đây sẽ zip 1 thư mục lằm cùng với file thực thi

    open('data.zip', ZipArchive::CREATE || ZipArchive::OVERWRITE)) {
            // get all file
            $directory="thu-muc-can-nen/";
            $files = new RecursiveIteratorIterator(
                new RecursiveDirectoryIterator($directory),
                RecursiveIteratorIterator::LEAVES_ONLY
            );
    
            foreach ($files as $file) {
                if(fileperms($path)!="16895") {
                    //
                    $zipArchive->addFile($file);
                    $zipArchive->setEncryptionName($file, ZipArchive::EM_AES_256, 'HieuNT');
                }
            }
    
    
            // Close ZipArchive
            $zipArchive->close();
        } else {
            printf('Open file error');
            exit;
        }
    ?>

    Tại đoạn code trên các bạn lưu ý các nội dung sau:

    $directory="thu-muc-can-nen/";

    code này thiết lập thư mục cần nén, lưu ý file thực thi code này lằm cùng thư mục cần nén

    $zipArchive->addFile($file);

    code này sẽ thực hiện thêm từng file vào file zip, lưu ý là tham số $file là đường dẫn của file và phải tồn tại trên hệ thống

    $zipArchive->setEncryptionName($file, ZipArchive::EM_AES_256, 'HieuNT');

    code này là thực hiện thiết lập mật khẩu cho file nén và ở đây mình đang set là 'HieuNT', $file là đường dẫn của file

    và như vậy với đoạn code trên các bạn đã dễ dàng thực hiện nén file dạng .zip kèm theo mật khẩu, nếu các bạn thực hiện mà không hoạt động được có thể liên hệ với chúng tôi để được hỗ trợ.




    Làm sao để thực hiện nén file .zip bằng PHP, bài viết này sẽ giới thiệu và hướng dẫn các bạn thực hiện nén file .zip bằng PHP một cách đơn giản.

    Nội dung chính Show

    • File nén ZiP là gì?
    • Nén (compress) file trong PHP
    • Nén (compress) thư mục trong PHP
    • File nén ZiP là gì?
    • Nén (compress) file trong PHP
    • Nén (compress) thư mục trong PHP
    Ngoài nén file thường thì chúng ta rất cần nén thư mục để lưu hành, thực ra việc zip thư mục chỉ là chúng ta code quét tất cả các file trong thư mục và đưa vào file zip, ví dụ code dưới đây sẽ zip 1 thư mục lằm cùng với file thực thi

      File nén ZiP là gì?

      Mục lục

      File có phần mở rộng .zip hiện nay khá phổ biến và hiện nay được hỗ trợ ở hầu hết các hệ điều hành nếu không muốn nói là tất cả.

      File .zip là một dạng file nén dùng giảm dung lượng của một hay nhiều file mà nó chứa bên trong nhằm tối ưu khả năng lưu trữ, di chuyển và truyền tải trên Internet. Sự phổ biến của nó đến mức hiện nay “zip” được xem như một động từ. Ví dụ “Bạn zip file lại rồi gửi cho mình nhé” là một cách nói khá phổ biến cho hành động nén file để giảm dung lượng lưu trữ.

      Nén (compress) file trong PHP

      Trong PHP, file .zip có thể tạo hoặc chính sửa thông qua một class được hỗ trợ sẵn là ZipArchive. Quá trình nén và đóng gói file nén sẽ kết thúc khi hàm close() hoặc destroyed() được gọi.

      open('data.zip', ZipArchive::CREATE || ZipArchive::OVERWRITE)) {
              // Add files with text
          	$zipArchive->addFromString('test.txt', 'www.tinhoc88.com');
      
              // Close ZipArchive
              $zipArchive->close();
          } else {
              printf('Lỗi! mở file.');
              exit;
          }
      ?>

      Kết quả

      Nén (compress) thư mục trong PHP

      Ngoài nén file thường thì chúng ta rất cần nén thư mục để lưu hành, thực ra việc zip thư mục chỉ là chúng ta code quét tất cả các file trong thư mục và đưa vào file zip, ví dụ code dưới đây sẽ zip 1 thư mục lằm cùng với file thực thi

      open('data.zip', ZipArchive::CREATE || ZipArchive::OVERWRITE)) {
              // get all file
              $directory="thu-muc-can-nen/";
              $files = new RecursiveIteratorIterator(
                  new RecursiveDirectoryIterator($directory),
                  RecursiveIteratorIterator::LEAVES_ONLY
              );
      
              foreach ($files as $file) {
                  if(fileperms($path)!="16895") {
                      //
                      $zipArchive->addFile($file);
                      $zipArchive->setEncryptionName($file, ZipArchive::EM_AES_256, 'HieuNT');
                  }
              }
      
      
              // Close ZipArchive
              $zipArchive->close();
          } else {
              printf('Open file error');
              exit;
          }
      ?>

      Tại đoạn code trên các bạn lưu ý các nội dung sau:

      $directory="thu-muc-can-nen/";

      code này thiết lập thư mục cần nén, lưu ý file thực thi code này lằm cùng thư mục cần nén

      $zipArchive->addFile($file);

      code này sẽ thực hiện thêm từng file vào file zip, lưu ý là tham số $file là đường dẫn của file và phải tồn tại trên hệ thống

      $zipArchive->setEncryptionName($file, ZipArchive::EM_AES_256, 'HieuNT');

      code này là thực hiện thiết lập mật khẩu cho file nén và ở đây mình đang set là 'HieuNT', $file là đường dẫn của file

      và như vậy với đoạn code trên các bạn đã dễ dàng thực hiện nén file dạng .zip kèm theo mật khẩu, nếu các bạn thực hiện mà không hoạt động được có thể liên hệ với chúng tôi để được hỗ trợ.




      Làm sao để thực hiện nén file .zip bằng PHP, bài viết này sẽ giới thiệu và hướng dẫn các bạn thực hiện nén file .zip bằng PHP một cách đơn giản.

      Mục lục

        File nén ZiP là gì?

        File có phần mở rộng .zip hiện nay khá phổ biến và hiện nay được hỗ trợ ở hầu hết các hệ điều hành nếu không muốn nói là tất cả.

        File .zip là một dạng file nén dùng giảm dung lượng của một hay nhiều file mà nó chứa bên trong nhằm tối ưu khả năng lưu trữ, di chuyển và truyền tải trên Internet. Sự phổ biến của nó đến mức hiện nay “zip” được xem như một động từ. Ví dụ “Bạn zip file lại rồi gửi cho mình nhé” là một cách nói khá phổ biến cho hành động nén file để giảm dung lượng lưu trữ.

        Ngoài .zip bạn còn có nhiều định dạng khác cũng có chức năng tương tự như .rar , .7z nhưng .zip có lẽ là phổ biến nhất, được sử dụng nhiều nhất và hỗ trợ bởi nhiều hệ điều hành mà không cần cài đặt gì thêm.

        Nén (compress) file trong PHP

        Trong PHP, file .zip có thể tạo hoặc chính sửa thông qua một class được hỗ trợ sẵn là ZipArchive. Quá trình nén và đóng gói file nén sẽ kết thúc khi hàm close() hoặc destroyed() được gọi.

        open('data.zip', ZipArchive::CREATE || ZipArchive::OVERWRITE)) {
                // Add files with text
            	$zipArchive->addFromString('test.txt', 'www.tinhoc88.com');
        
                // Close ZipArchive
                $zipArchive->close();
            } else {
                printf('Lỗi! mở file.');
                exit;
            }
        ?>

        Kết quả

        Nén (compress) thư mục trong PHP

        Ngoài nén file thường thì chúng ta rất cần nén thư mục để lưu hành, thực ra việc zip thư mục chỉ là chúng ta code quét tất cả các file trong thư mục và đưa vào file zip, ví dụ code dưới đây sẽ zip 1 thư mục lằm cùng với file thực thi

        open('data.zip', ZipArchive::CREATE || ZipArchive::OVERWRITE)) {
                // get all file
                $directory="thu-muc-can-nen/";
                $files = new RecursiveIteratorIterator(
                    new RecursiveDirectoryIterator($directory),
                    RecursiveIteratorIterator::LEAVES_ONLY
                );
        
                foreach ($files as $file) {
                    if(fileperms($path)!="16895") {
                        //
                        $zipArchive->addFile($file);
                        $zipArchive->setEncryptionName($file, ZipArchive::EM_AES_256, 'HieuNT');
                    }
                }
        
        
                // Close ZipArchive
                $zipArchive->close();
            } else {
                printf('Open file error');
                exit;
            }
        ?>

        Tại đoạn code trên các bạn lưu ý các nội dung sau:

        $directory="thu-muc-can-nen/";

        code này thiết lập thư mục cần nén, lưu ý file thực thi code này lằm cùng thư mục cần nén

        $zipArchive->addFile($file);

        code này sẽ thực hiện thêm từng file vào file zip, lưu ý là tham số $file là đường dẫn của file và phải tồn tại trên hệ thống

        $zipArchive->setEncryptionName($file, ZipArchive::EM_AES_256, 'HieuNT');

        code này là thực hiện thiết lập mật khẩu cho file nén và ở đây mình đang set là 'HieuNT', $file là đường dẫn của file

        và như vậy với đoạn code trên các bạn đã dễ dàng thực hiện nén file dạng .zip kèm theo mật khẩu, nếu các bạn thực hiện mà không hoạt động được có thể liên hệ với chúng tôi để được hỗ trợ.