ホームページ >バックエンド開発 >PHPチュートリアル >zip ファイルを生成する php クラス

zip ファイルを生成する php クラス

WBOY
WBOYオリジナル
2016-07-25 08:43:10825ブラウズ
  1. /*
  2. 作成者: Matt Ford
  3. 目的: zip ファイルを作成する基本クラス
  4. */
  5. class zipFile {
  6. public $files = array();
  7. public $settings = NULL ;
  8. public $fileInfo = array (
  9. "name" => "",
  10. "numFiles" => 0,
  11. "fullFilePath" => ""
  12. );
  13. private $fileHash = "";
  14. private $ zip = "";
  15. public function __construct($settings) {
  16. $this->zipFile($settings);
  17. }
  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. }
  24. }
  25. public function create() {
  26. $this->fileHash = md5(implode(",", $this->files));
  27. $this->fileInfo["name"] = $this -> ファイルハッシュ 。 ".zip";
  28. $this->fileInfo["numFiles"] = count($this->files);
  29. $this->fileInfo["fullFilePath"] = $this->settings->gt;パス 。 「/」。 $this->fileInfo["name"];
  30. if (file_exists($this->fileInfo["fullFilePath"])) {
  31. return array (
  32. false,
  33. "すでに作成されています: " . $this-> fileInfo["fullFilePath"]
  34. );
  35. }
  36. else {
  37. $this->zip->open($this->fileInfo["fullFilePath"], ZIPARCHIVE::CREATE);
  38. $this-> addFiles();
  39. $this->zip->close();
  40. return array (
  41. true,
  42. "新しいファイルが作成されました: " . $this->fileInfo["fullFilePath"]
  43. );
  44. }
  45. }
  46. プライベート関数 addFiles() {
  47. foreach ($this->files as $k) {
  48. $this->zip->addFile($k, Basename($k));
  49. }
  50. }
  51. }
  52. $settings = array (
  53. "path" => dirname(__FILE__)
  54. );
  55. $zipFile = new zipFile($settings);
  56. $zipFile->files = array (
  57. ". /images/navoff.jpg",
  58. "./images/navon.jpg"
  59. );
  60. list($success, $error) = $zipFile->create();
  61. if ($success === true) {
  62. //success
  63. }
  64. else {
  65. //error because: $error
  66. }
  67. ?>
复制代码

php、zip


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。