directory search
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
characters

CodeIgniter的Zip编码类允许您创建Zip存档。档案可以下载到您的桌面或保存到一个目录。

  • 使用Zip编码类

    • 初始化类

    • 用法示例

  • 类参考

纠错

使用Zip编码类

初始化类

像CodeIgniter中的大多数其他类一样,使用$ this-> load-> library函数在您的控制器中初始化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])

参数:

$ filepath(mixed) - 单个文件路径或文件数组=数据对$ data(array) - 文件内容(如果$ filepath是数组,则忽略)

返回类型:

void

  • $ filepath混合) - 单个文件路径或文件数组=>数据对

  • $ dataarray) - 文件内容(如果$ filepath是一个数组,则忽略)

Return type:  void
将数据添加到Zip存档。可以在单个和多个文件模式下工作。

添加单个文件时,第一个参数必须包含您想要给文件的名称,而第二个参数必须包含文件内容:

$ name ='mydata1.txt'; $ data ='数据字符串!'; $ this-> zip-> add_data($ name,$ data); $ name ='mydata2.txt'; $ data ='另一个数据字符串!'; $ this-> zip-> add_data($ name,$ data);

添加多个文件时,第一个参数必须包含file => contents对,第二个参数将被忽略:

$data = array(         'mydata1.txt' => 'A Data String!',         'mydata2.txt' => 'Another Data String!' );  $this->zip->add_data($data);

如果您希望将压缩数据组织到子目录中,只需将路径包含为文件名的一部分即可:

$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)

参数:

$ directory(混合) - 目录名称字符串或多个目录的数组

返回类型:

void

  • $ directory混合) - 目录名称字符串或多个目录的数组

Return type:  void
允许你添加一个目录。通常这种方法是不必要的,因为当使用`$ this-> zip-> add_data()`时,你可以将数据放入目录中,但是如果你想创建一个空目录,你可以这样做:

$this->zip->add_dir('myfolder'); // Creates a directory called "myfolder"

read_file($path[, $archive_filepath = FALSE])

参数:

$ path(string) - 文件路径$ archive_filepath(mixed) - 新文件名/路径(字符串)或(boolean)是否保留原始文件路径

返回:

成功为TRUE,失败为FALSE

返回类型:

布尔

  • $ pathstring) - 文件的路径

  • $ archive_filepathmixed) - 新文件名/路径(字符串)或(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存档保持文件的目录结构,请在第二个参数中传递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]])

参数:

$ path(string) - 目录的路径$ preserve_filepath(bool) - 是否保留原始路径$ root_path(string) - 要从归档目录中排除的路径的一部分

返回:

成功为TRUE,失败为FALSE

返回类型:

布尔

  • $ pathstring) - 目录的路径

  • $ preserve_filepathbool) - 是否保持原始路径

  • $ root_pathstring) - 要从归档目录中排除的路径的一部分

返回:成功时为TRUE,失败时为FALSE
返回类型:布尔值
允许您压缩已存在于服务器某处的目录(及其内容)。提供目录的路径,zip类将递归读取并重新创建为Zip存档。包含在提供的路径中的所有文件将被编码,其中包含的任何子目录也将被编码。例:

$ path ='/ path / to / your / directory /'; $这 - > zip-> read_dir($路径); //将文件下载到桌面。将其命名为“my_backup.zip”$ this-> zip-> download('my_backup.zip');

默认情况下,Zip存档将把第一个参数中列出的所有目录放在zip中。如果您希望忽略目标目录前面的树,则可以在第二个参数中传递FALSE(布尔值)。例:

$path = '/path/to/your/directory/';  $this->zip->read_dir($path, FALSE);

这将在内部创建一个名为“directory”的ZIP目录,然后所有子目录都将正确存储在该目录中,但不会包含路径/ path /目录

archive($filepath)

参数:

$ 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')

参数:

$ filename(字符串) - 存档文件名

返回类型:

void

  • $ filename字符串) - 存档文件名

Return type:  void
导致Zip文件从您的服务器下载。你必须传递你想要的zip文件名称。例:

$this->zip->download('latest_stuff.zip'); // File will be named "latest_stuff.zip"

注意

不要在调用此方法的控制器中显示任何数据,因为它会发送各种服务器标题,导致发生下载并将文件视为二进制文件。

get_zip()

返回:

Zip文件内容

返回类型:

clear_data()

Return type:

void

Previous article: Next article: