首页 > 开发 > PHP > 正文

php生成zip文件类实例

2024-05-04 23:34:00
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php生成zip文件类,实例分析了php操作zip文件的技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了php生成zip文件类。分享给大家供大家参考。具体如下:

 

 
  1. <?php 
  2. /* 
  3. By: Matt Ford 
  4. Purpose: Basic class to create zipfiles 
  5. */ 
  6. class zipFile { 
  7. public $files = array(); 
  8. public $settings = NULL; 
  9. public $fileInfo = array ( 
  10. "name" => ""
  11. "numFiles" => 0, 
  12. "fullFilePath" => "" 
  13. ); 
  14. private $fileHash = ""
  15. private $zip = ""
  16. public function __construct($settings) { 
  17. $this->zipFile($settings); 
  18. public function zipFile($settings) { 
  19. $this->zip = new ZipArchive(); 
  20. $this->settings = new stdClass(); 
  21. foreach ($settings as $k => $v) { 
  22. $this->settings->$k = $v
  23. public function create() { 
  24. $this->fileHash = md5(implode(","$this->files)); 
  25. $this->fileInfo["name"] = $this->fileHash . ".zip"
  26. $this->fileInfo["numFiles"] = count($this->files); 
  27. $this->fileInfo["fullFilePath"] = $this->settings->path .  
  28. "/" . $this->fileInfo["name"]; 
  29. if (file_exists($this->fileInfo["fullFilePath"])) { 
  30. return array ( 
  31. false, 
  32. "already created: " . $this->fileInfo["fullFilePath"
  33. ); 
  34. else { 
  35. $this->zip->open($this->fileInfo["fullFilePath"], ZIPARCHIVE::CREATE); 
  36. $this->addFiles(); 
  37. $this->zip->close(); 
  38. return array ( 
  39. true, 
  40. "new file created: " . $this->fileInfo["fullFilePath"
  41. ); 
  42. private function addFiles() { 
  43. foreach ($this->files as $k) { 
  44. $this->zip->addFile($kbasename($k)); 
  45. $settings = array ( 
  46. "path" => dirname(__FILE__
  47. ); 
  48. $zipFile = new zipFile($settings); 
  49. $zipFile->files = array ( 
  50. "./images/navoff.jpg"
  51. "./images/navon.jpg" 
  52. ); 
  53. list($success$error) = $zipFile->create(); 
  54. if ($success === true) { 
  55. //success 
  56. else { 
  57. //error because: $error 
  58. ?> 

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表