在PHP中压缩文件时删除目录结构

前端之家收集整理的这篇文章主要介绍了在PHP中压缩文件时删除目录结构前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP中压缩文件时遇到了一些问题.我有一个拉链文件数组的函数,这些文件都在不同的目录中.该功能如下:
  1. function create_zip($files = array(),$destination = '',$overwrite = false,$add_to_db=true) {
  2. print_r($files);
  3. $zip = new ZipArchive();
  4. if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
  5. return false;
  6. }
  7. for($i=0;$i < count($files); $i++) {
  8. //echo $files[$i].'<br>';
  9. $zip->addFile($files[$i],$files[$i]);
  10. }
  11.  
  12.  
  13.  
  14. $zip->close();
  15.  
  16. if(file_exists($destination)) {
  17. // echo("Success");
  18. if($add_to_db == true) { add_file($destination); }
  19.  
  20. return true;
  21.  
  22. } else {
  23. //echo("Failed");
  24. return false;
  25. }
  26. }

用户下载并提取zip时,文件结构如下:

文件夹/文件夹2 / file1.jpg
文件夹/ file2.jpg
文件夹/文件夹2 / folder3 / file3.jpg

我的问题是,是否有可能让PHP将所有文件放在zip的根目录中并忽略给定的结构.所以提取文件看起来像:

/file1.jpg
/file2.jpg
/file3.jpg

我能想到的唯一解决方案是将所有文件移动到一个文件夹然后压缩这个文件夹,但这看起来有点过分.

在另一个问题中找到了答案

php creating zips without path to files inside the zip

猜你在找的PHP相关文章