在开发Web应用程序时,很有可能您会遇到不同格式的文件——CSV数据、密码文件、XML编码的内容和不同形式的二进制的数据。您的PHP脚本将需要频繁地和这些文件交互,从中读取数据和将数据写入其中。由于有这么些格式的文件要处理,所以您就不要意外PHP中有那么多种类型的内置函数和外部的库,用来连接和使用几乎所有您能说出名称的文件格式。
这篇指南就是关于这样一种文件格式的,可能应用程序开发者几乎每天都会遇到这种文件:ZIP格式。一般这种格式是用来通过电子邮件和远程连接传输文件的,能够将多个文件压缩到一个档案文件中,因此,减少了文件的硬盘占据空间,并且能够更容易地移动它们。PHP通过它的ZZIPLib插件和PEAR的Archive_ZIP类都可以读取和创建这些ZIP文件。
我将假设您已经有了正常运行的Apache,安装了PHP,并且pear Archive_ZIP class类已经正确安装了。
注意:您可以直接从网上安装pear Archive_ZIP程序包,要么下载它,还可以利用提供的指示。
创建ZIP档案文件
让我们从一个简单的例子开始:动态地创建一个包括几个其他文件的ZIP档案文件。以列表A中的脚本开始。
列表A
<?PHP
include ('Archive/ZIP.PHP'); // imports
$obj = new Archive_ZIP('test.ZIP'); // name of ZIP file
$files = array('mystuff/ad.gif',
'mystuff/alcon.doc',
'mystuff/alcon.xls'); // files to store
if ($obj->create($files)) {
echo 'Created successfully!';
} else {
echo 'Error in file creation';
}
?>
这个脚本非常简单,但是值得仔细看一下:
现在,在修改了源文件列表和目标文件位置来反映您的本地系统配置之后,试着运行上面的脚本。如果一切顺利的话,Archive_ZIP应该可以找到您所列出的、并压缩到名为test.ZIP的ZIP档案文件中的文件。