平时都是使用 FTP 上传文件的,FTP 的方式就是一个个文件逐个上传,上传的速度很慢而且很费时间,偶尔因为网速原因还会卡住,那么我就想,能不能先把文件压缩成 zip 文件,然后上传以后在服务器上解压,这样更加的方便传送大量的文件。
如需在服务器上运行 Zip File 函数,必须安装这些库:
PHP 5+:Zip 函数和 Zip 库默认不会启用,必须从上面的链接下载。请使用 --with-zip=DIR 配置选项来包含 Zip 支持。
PHP 5+:Zip 函数默认不会启用,必须从上面的链接下载 php_zip.dll 和 ZZIPlib 库。必须在 php.ini 之内启用 php_zip.dll。
如需启用任何 PHP 扩展,PHP 的 extension_dir 设置(在 php.ini 文件中)应该设置为该 PHP 扩展所在的目录。举例 extension_dir 的值可能是 c:\php\ext。
函数 | 描述 | PHP |
---|---|---|
zip_close() | 关闭 ZIP 文件。 | 4 |
zip_entry_close() | 关闭 ZIP 文件中的一个项目。 | 4 |
zip_entry_compressedsize() | 返回 ZIP 文件中的一个项目的被压缩尺寸。 | 4 |
zip_entry_compressionmethod() | 返回 ZIP 文件中的一个项目的压缩方法。 | 4 |
zip_entry_filesize() | 返回 ZIP 文件中的一个项目的实际文件尺寸。 | 4 |
zip_entry_name() | 返回 ZIP 文件中的一个项目的名称。 | 4 |
zip_entry_open() | 打开 ZIP 文件中的一个项目以供读取。 | 4 |
zip_entry_read() | 读取 ZIP 文件中的一个打开的项目。 | 4 |
zip_open() | 打开 ZIP 文件。 | 4 |
zip_read() | 读取 ZIP 文件中的下一个项目。 | 4 |
$zip = zip_open("/tmp/test2.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf\n";
zip_entry_close($zip_entry);
}
echo "\n";
}
zip_close($zip);
}