青岛网站建设新元创想,西安高端网站建设哪家好,绵阳定制网站建设,技能训练企业网站建设可行性分析1. PHP 生成压缩包 下面是 PHP 将本地文件生成压缩包的核心代码#xff0c;在此基础上可进行扩展封装 // 压缩包名称$name test.zip;// 创建压缩包对象$zip new ZipArchive;// 打开压缩包$zip-open($name, ZipArchive::CREATE);// 本地文件绝对路径$path __DIR__ . /In…1. PHP 生成压缩包 下面是 PHP 将本地文件生成压缩包的核心代码在此基础上可进行扩展封装 // 压缩包名称$name test.zip;// 创建压缩包对象$zip new ZipArchive;// 打开压缩包$zip-open($name, ZipArchive::CREATE);// 本地文件绝对路径$path __DIR__ . /Index.php;// 将文件添加到压缩包中,此时已经生成了压缩包文件$zip-addFile($path, basename($path));// 将文本内容写入文件再将文件添加到压缩包中$zip-addFromString(1.txt, 你好,世界!);$zip-addFromString(2.txt, hello world !);// 关闭压缩包$zip-close();
$zip-open()
官方文档 : PHP: ZipArchive::open - Manual
第一个参数表示处理的 zip 文件名第二个参数表示处理模式语法格式如下所示: $zip-open(string $filename, int $flags 0);
当第二个参数为 ZipArchive::CREATE 时
压缩包文件不存在时会生成压缩包; 如果压缩包存在则在压缩包中进行追加文件而不是直接覆盖原压缩包 $zip-open($name, ZipArchive::CREATE);
当第二个参数为 ZipArchive::OVERWRITE 时
压缩包文件存在时可以正常处理会生成新的压缩包文件将原来的压缩包直接覆盖掉原压缩包不存在时程序则会报错 $zip-open($name, ZipArchive::OVERWRITE);// 如果原压缩包文件不存在在执行 addFile() 向压缩包中添加文件时会抛出错误$zip-addFile();// 错误如下所示// ZipArchive::addFile(): Invalid or uninitialized Zip object
那么 $zip-open() 第二个参数处理模式应该使用哪个呢 ? 我们需要自己做判断选择合适的处理模式 if ($zip-open($name, ZipArchive::OVERWRITE) ZipArchive::ER_NOENT) {$zip-open($name, ZipArchive::CREATE);}
$zip-addFromString()
将字符串内容写入文件然后添加到压缩包 $zip-addFromString(string $name, string $content);// 使用示例$zip-addFromString(1.txt, 你好,世界!);$zip-addFromString(2.txt, hello world !);
2. PHP 读取压缩包 // 压缩包$name test.zip;// 创建压缩包操作对象$zip new ZipArchive;// 打开压缩包$result $zip-open($name);if ($result ZipArchive::ER_NOENT) {throw new \Exception(压缩包不存在);} else if ($result ! true) {throw new \Exception(压缩包打开失败);}// 将压缩包文件解压到指定目录$zip-extractTo(unzip);// 在 TP6 中建议解压到 runtime 目录下// $zip-extractTo(runtime_path() . unzip);// 如果需要处理压缩包中的文件,遍历解压缩目录下的文件进行处理即可// 释放压缩包对象$zip-close();