?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
CodeIgniter的Zip編碼類允許您創(chuàng)建Zip存檔。檔案可以下載到您的桌面或保存到一個目錄。
使用Zip編碼類
初始化類
用法示例
類參考
像CodeIgniter中的大多數(shù)其他類一樣,使用$ this-> load-> library函數(shù)在您的控制器中初始化Zip類:
$this->load->library('zip');
加載后,Zip庫對象將可用:
$this->zip
此示例演示如何壓縮文件,將其保存到服務器上的文件夾,然后將其下載到桌面。
$name = 'mydata1.txt';$data = 'A Data String!';$this->zip->add_data($name, $data);// Write the zip file to a folder on your server. Name it "my_backup.zip"$this->zip->archive('/path/to/directory/my_backup.zip');// Download the file to your desktop. Name it "my_backup.zip"$this->zip->download('my_backup.zip');
class CI_Zip$compression_level = 2
要使用的壓縮級別。
它的范圍可以從0到9,其中9是最高的,0是有效禁用壓縮的:
$this->zip->compression_level = 0;
add_data($filepath[, $data = NULL])
參數(shù): | $ filepath(mixed) - 單個文件路徑或文件數(shù)組=數(shù)據(jù)對$ data(array) - 文件內(nèi)容(如果$ filepath是數(shù)組,則忽略) |
---|---|
返回類型: | void |
$ filepath(混合) - 單個文件路徑或文件數(shù)組=>數(shù)據(jù)對
$ data(array) - 文件內(nèi)容(如果$ filepath是一個數(shù)組,則忽略)
Return type: void
將數(shù)據(jù)添加到Zip存檔。可以在單個和多個文件模式下工作。
添加單個文件時,第一個參數(shù)必須包含您想要給文件的名稱,而第二個參數(shù)必須包含文件內(nèi)容:
$ name ='mydata1.txt'; $ data ='數(shù)據(jù)字符串!'; $ this-> zip-> add_data($ name,$ data); $ name ='mydata2.txt'; $ data ='另一個數(shù)據(jù)字符串!'; $ this-> zip-> add_data($ name,$ data);
添加多個文件時,第一個參數(shù)必須包含file => contents對,第二個參數(shù)將被忽略:
$data = array( 'mydata1.txt' => 'A Data String!', 'mydata2.txt' => 'Another Data String!' ); $this->zip->add_data($data);
如果您希望將壓縮數(shù)據(jù)組織到子目錄中,只需將路徑包含為文件名的一部分即可:
$name = 'personal/my_bio.txt'; $data = 'I was born in an elevator...'; $this->zip->add_data($name, $data);
上面的例子將my_bio.txt放在一個名為personal的文件夾中。
add_dir($directory)
參數(shù): | $ directory(混合) - 目錄名稱字符串或多個目錄的數(shù)組 |
---|---|
返回類型: | void |
$ directory(混合) - 目錄名稱字符串或多個目錄的數(shù)組
Return type: void
允許你添加一個目錄。通常這種方法是不必要的,因為當使用`$ this-> zip-> add_data()`時,你可以將數(shù)據(jù)放入目錄中,但是如果你想創(chuàng)建一個空目錄,你可以這樣做:
$this->zip->add_dir('myfolder'); // Creates a directory called "myfolder"
read_file($path[, $archive_filepath = FALSE])
參數(shù): | $ path(string) - 文件路徑$ archive_filepath(mixed) - 新文件名/路徑(字符串)或(boolean)是否保留原始文件路徑 |
---|---|
返回: | 成功為TRUE,失敗為FALSE |
返回類型: | 布爾 |
$ path(string) - 文件的路徑
$ archive_filepath(mixed) - 新文件名/路徑(字符串)或(boolean)是否保留原始文件路徑
返回:成功時為TRUE,失敗時為FALSE
Return type: bool
允許您壓縮已存在于服務器某處的文件。提供文件路徑,zip類將讀取它并將其添加到存檔中:
$path = '/path/to/photo.jpg'; $this->zip->read_file($path); // Download the file to your desktop. Name it "my_backup.zip" $this->zip->download('my_backup.zip');
如果您希望Zip存檔保持文件的目錄結構,請在第二個參數(shù)中傳遞TRUE(布爾值)。例:
$path = '/path/to/photo.jpg'; $this->zip->read_file($path, TRUE); // Download the file to your desktop. Name it "my_backup.zip" $this->zip->download('my_backup.zip');
在上面的例子中,photo.jpg將被放置到路徑/到/目錄中。
您也可以為即時添加的文件指定一個新名稱(包含路徑):
$path = '/path/to/photo.jpg'; $new_path = '/new/path/some_photo.jpg'; $this->zip->read_file($path, $new_path); // Download ZIP archive containing /new/path/some_photo.jpg $this->zip->download('my_archive.zip');
read_dir($path[, $preserve_filepath = TRUE[, $root_path = NULL]])
參數(shù): | $ path(string) - 目錄的路徑$ preserve_filepath(bool) - 是否保留原始路徑$ root_path(string) - 要從歸檔目錄中排除的路徑的一部分 |
---|---|
返回: | 成功為TRUE,失敗為FALSE |
返回類型: | 布爾 |
$ path(string) - 目錄的路徑
$ preserve_filepath(bool) - 是否保持原始路徑
$ root_path(string) - 要從歸檔目錄中排除的路徑的一部分
返回:成功時為TRUE,失敗時為FALSE
返回類型:布爾值
允許您壓縮已存在于服務器某處的目錄(及其內(nèi)容)。提供目錄的路徑,zip類將遞歸讀取并重新創(chuàng)建為Zip存檔。包含在提供的路徑中的所有文件將被編碼,其中包含的任何子目錄也將被編碼。例:
$ path ='/ path / to / your / directory /'; $這 - > zip-> read_dir($路徑); //將文件下載到桌面。將其命名為“my_backup.zip”$ this-> zip-> download('my_backup.zip');
默認情況下,Zip存檔將把第一個參數(shù)中列出的所有目錄放在zip中。如果您希望忽略目標目錄前面的樹,則可以在第二個參數(shù)中傳遞FALSE(布爾值)。例:
$path = '/path/to/your/directory/'; $this->zip->read_dir($path, FALSE);
這將在內(nèi)部創(chuàng)建一個名為“directory”的ZIP目錄,然后所有子目錄都將正確存儲在該目錄中,但不會包含路徑的/ path /目錄。
archive($filepath)
參數(shù): | $ filepath(字符串) - 目標zip檔案的路徑 |
---|---|
返回: | 成功為TRUE,失敗為FALSE |
返回類型: | 布爾 |
$ filepath(字符串) - 目標zip檔案的路徑
返回:成功時為TRUE,失敗時為FALSE
Return type: bool
將Zip編碼文件寫入服務器上的目錄。提交以文件名結尾的有效服務器路徑。確保該目錄是可寫的(755通常是可以的)。例:
$this->zip->archive('/path/to/folder/myarchive.zip'); // Creates a file named myarchive.zip
download($filename = 'backup.zip')
參數(shù): | $ filename(字符串) - 存檔文件名 |
---|---|
返回類型: | void |
$ filename(字符串) - 存檔文件名
Return type: void
導致Zip文件從您的服務器下載。你必須傳遞你想要的zip文件名稱。例:
$this->zip->download('latest_stuff.zip'); // File will be named "latest_stuff.zip"
注意
不要在調(diào)用此方法的控制器中顯示任何數(shù)據(jù),因為它會發(fā)送各種服務器標題,導致發(fā)生下載并將文件視為二進制文件。
get_zip()
返回: | Zip文件內(nèi)容 |
---|---|
返回類型: | 串 |
clear_data()
Return type: | void |
---|