Kết quả 1 đến 1 của 1
  1. #1
    Super Moderator Zen Studio's Avatar
    Ngày tham gia
    19-06-2013
    Bài viết
    393
    Cảm ơn
    58
    Được cảm ơn 166 trong 123 bài viết

    Cách sử dụng zip encode trong codeigniter như thế nào

    Lớp Zip Encode trên CodeIgniter cho phép bạn có thể tạo các file lưu trữ dạng Zip. Và các file này có thể được tải về máy tính.

    1. Load Class Zip Encode.

    Khi muốn gọi lớp Zip Encode trên CodeIgniter, chúng ta sử dụng hàm $this->load->library().

    PHP Code:
    $this->load->library('zip'); 
    Sau khi gọi lớp này lên, ta có thể truy cập vào Zip Object thông qua hàm $this->zip.

    Ví dụ về cách dùng lớp Zip Encode để nén một file, lưu nó vào một thư mục trên Server hoặc là tải nó về Desktop.

    PHP Code:
    $name 'mydata1.txt'// File nguồn
    $data 'A Data String!'// Nội dung của file
    $this->zip->add_data($name$data); // Chuyển nội dung vào file
    // Ghi file zip này vào một thư mục trên Server. Đặt tên là "my_backup.zip"
    $this->zip->archive('/path/to/directory/my_backup.zip'); 
    // Tải file zip này về Desktop . Đặt tên nó là "my_backup.zip"
    $this->zip->download('my_backup.zip'); 

    2. Các hàm tham chiếu.


    PHP Code:
    aHàm $this->zip->add_data(). 
    Hàm này cho phép ta chèn dữ liệu vào file Zip. Các tham số bao gồm

    Tham số 1 : Tên của file sẽ đưa dữ liệu vào.
    Tham số 2 : Là chuỗi nội dung.

    Ví dụ :
    PHP Code:

    $name 
    'my_bio.txt';
    $data 'Hello World ! I am a PHP developer ...';
    $this->zip->add_data($name$data); 
    Ta có thể gọi nhiều lần để có thể chèn được nhiều file hơn. Ví dụ :

    PHP Code:
    $name 'mydata1.txt';
    $data 'Nội dung thứ nhất !';
    $this->zip->add_data($name$data);
    $name 'mydata2.txt';
    $data 'Nội dung thứ hai !';
    $this->zip->add_data($name$data); 
    Có thể truyền theo mảng như sau :

    PHP Code:
    $data = array(
                    
    'mydata1.txt' => 'Nội dung thứ nhất !',
                    
    'mydata2.txt' => 'Nội dung thứ hai !'
                
    );
    $this->zip->add_data($data);
    $this->zip->download('my_backup.zip'); 
    Nếu bạn muốn nén file trong một thư mục cấp con, thì thay vì truyền tên file các bạn truyền đường dẫn của file vào tham số thứ 1.

    PHP Code:
    $name 'personal/my_bio.txt';
    $data 'I was born in an elevator...';
    $this->zip->add_data($name$data); 
    File my_bio.txt sẽ được đặt vào trong thư mục personal.

    PHP Code:
    bHàm $this->zip->add_dir(). 
    Hàm này cho phép ta chèn một thư mục. Thông thường hàm này là không cần thiết khi mà bạn muốn đặt dữ liệu vào thư mục nào đó bằng sử dụng hàm $this->zip->add_data().

    Nhưng nếu bạn muốn tạo ra một thư mục trống thì phải dùng hàm này. Ví dụ :

    $this->zip->add_dir('myfolder'); // Tạo một thư mục tên là "myfolder"

    PHP Code:
    cHàm $this->zip->read_file(). 
    Hàm này cho phép bạn nén một file đã tồn tại ở đâu đó trên Server.

    PHP Code:
    $path '/path/to/photo.jpg';
    $this->zip->read_file($path); 
    // Tải file về Desktop và đặt tên là "my_backup.zip"
    $this->zip->download('my_backup.zip'); 
    PHP Code:
    eHàm $this->zip->read_dir(). 
    Hàm này cho phép ta nén một thư mục (kèm nội dung chứa trong thư mục này) đã tồn tại đâu đó trên Server. Tham số là đường dẫn tới thư mục cần nén, lớp Zip Encode sẽ đọc theo quy tắc đệ quy (đọc cả những thư mục con) của thư mục này và tái tạo lại nó dưới định dạng file Zip.

    Tất cả file chứa trong thư mục nguồn sẽ được mã hóa. Ví dụ

    PHP Code:
    $path '/path/to/your/directory/';
    $this->zip->read_dir($path); 
    $this->zip->download('my_backup.zip'); 
    Theo mặc định thì lớp Zip sẽ đặt tất cả thư mục ở tham số thứ nhất vào trong file zip này. Nếu bạn không muốn sắp xếp theo cấp bậc kiểu cây thư mục, thì truyền vào tham số thứ hai là FALSE.

    Ví dụ :

    PHP Code:
    $path '/path/to/your/directory/';
    $this->zip->read_dir($pathFALSE); 
    Hàm này sẽ tạo một file Zip với thư mục directory được chứa ở trong, rồi đến tất cả thư mục con của nó, nhưng sẽ không chứa các thư mục /path/to/your.
    PHP Code:
    fHàm $this->zip->archive(). 
    Hàm này ghi một file Zip được mã hóa vào một thư mục trên Server. Bạn phải chắc chắn là thư mục có quyền được ghi (666 hoặc 777).

    $this->zip->archive('/path/to/folder/myarchive.zip'); // Tạo một file tên là myarchive.zip

    PHP Code:
    gHàm $this->zip->download(). 
    Dùng để download file Zip từ Server về máy Desktop.

    $this->zip->download('latest_stuff.zip'); // File được đặt tên là "latest_stuff.zip"

    Chú ý : Đừng nên hiển thị bất kể dữ liệu nào trong Controller có gọi đến hàm này vì nó sẽ gửi rất nhiều Server Header đi , và có thể bị tải về và xử lý giống mã nhị phân. Chủ yếu là lý do bảo mật.
    PHP Code:
    hHàm $this->zip->get_zip(). 
    Hàm này trả về file nén dữ liệu. Nhìn chung thì ta không cần dùng hàm này trừ khi muốn làm gì đó chỉ với dữ liệu này. Ví dụ :

    PHP Code:
    $name 'my_bio.txt';
    $data 'I was born in an elevator...';
    $this->zip->add_data($name$data);
    $zip_file $this->zip->get_zip(); 
    PHP Code:
    iHàm $this->zip->clear_data(). 
    Lớp Zip Encode này sẽ cache - tạo bộ đệm dữ liệu của bạn vì vậy nó sẽ không cần phải biên dịch lại đối với từng hàm khi được sử dụng. Tuy vậy, nếu bạn cần tạo nhiều file Zip, mỗi cái có nhiều dữ liệu, thì bạn cần phải xóa bộ đệm giữa các lần gọi đi. Ví dụ :

    PHP Code:
    $name 'my_bio.txt';
    $data 'Nội dung file ...';
    $this->zip->add_data($name$data);
    $zip_file $this->zip->get_zip();
    $this->zip->clear_data(); 
    $name 'photo.jpg';
    $this->zip->read_file("/path/to/photo.jpg"); // Đọc nội dung của file 
    Trên đây là toàn bộ các hàm của lớp Zip Encode trên CodeIgniter cho đến thời điểm hiện tại. Lớp này khá hữu ích khi ta thường cần nén dữ liệu để lưu trên Server, vừa dễ quản lý, vừa bảo mật hệ thống hơn.

    Chúc các bạn thành công :)
    hay cung chung toi chinh phuc tri thuc

  2. The Following 2 Users Say Thank You to Zen Studio For This Useful Post:

    PhanNguyenChuong (01-10-2013),Sanza (07-10-2013)

Chia sẽ và Bình Luận chủ đề Cách sử dụng zip encode trong codeigniter như thế nào trên facebook

Các từ khóa xuất hiện trên google của chủ đề

Chưa có từ khóa lên top google

Tag của Chủ đề này - Hãy Thêm Tags Để bài viết nhanh lên top google

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •