php利用ZipArchive类操作文件的实例(2)

一:创建一个压缩包

$zip = new \ZipArchive;

if ($zip->open('test_new.zip', \ZipArchive::CREATE) === true)

{

 // 将指定文件添加到zip中

 $zip->addFile('test.txt');

  

 // test.txt文件添加到zip并将其重命名为newfile.txt

 $zip->addFile('test.txt', 'newfile.txt');

  

 // 将test.txt文件添加到zip文件中的test文件夹内

 $zip->addFile('test.txt', 'test/newfile.txt');

  

 //将一个空的目录添加到zip中

 $zip->addEmptyDir ('test');

  

 // 将有指定内容的new.txt文件添加到zip文件中

 $zip->addFromString('new.txt', '要添加到new.txt文件中的文本');

  

 // 将有指定内容的new.txt添加到zip文件中的test文件夹

 $zip->addFromString('test/new.txt', '要添加到new.txt文件中的文本');

  

 //将images目录下所有文件添加到zip中

  if ($handle = opendir('images')){

   // 添加目录中的所有文件

   while (false !== ($entry = readdir($handle))){

    if ($entry != "." && $entry != ".." && !is_dir('images/' . $entry)){

      $zip->addFile('images/' . $entry);

    }

   }

   closedir($handle);

  }

  

 // 关闭zip文件

 $zip->close();

}

二:获取压缩包的文件信息并解压指定压缩包

$zip = new \ZipArchive;

if ($zip->open('test_new.zip') === true) {

 //获取索引为0的文件名称

 var_dump($zip->getNameIndex(0));

  

 //将压缩包文件解压到test目录下

 $zip->extractTo('test');

  

 //获取压缩包指定文件的文本流

 $stream = $zip->getStream('test.txt');

  

 // 关闭zip文件

 $zip->close();

 $str = stream_get_contents($stream); //这里注意获取到的文本编码

 var_dump($str);

}

三:修改压缩包内指定文件的文件名称及删除压缩包内指定文件

$zip = new \ZipArchive;

if ($zip->open('test_new.zip') === true) {

 //把压缩文件内索引为0的文件修改成newname.txt

 $zip->renameIndex(0,'newname.txt');

 //把压缩文件内的new.txt修改成newword.txt

 $zip->renameName('new.txt','newword.txt');

 //删除压缩文件内索引为0的文件

 $zip->deleteIndex(0);

 //删除压缩文件的test.png

 $zip->deleteName('test.png');

 // 关闭zip文件

 $zip->close();

}

以上就是php利用ZipArchive类实现文件压缩与解压的详细内容,感谢大家的学习和对黑区网络的支持。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1849.html