詳細は以下の通りです:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
/* 投稿者: マット・フォード 目的: zipファイルを作成するための基本クラス */ クラス zipFile { パブリック $files = array(); パブリック $settings = NULL; public $fileInfo = array ( 「名前」 => 「」、 "numFiles" => 0, "フルファイルパス" => "" ); プライベート $fileHash = ""; プライベート $zip = ""; パブリック関数 __construct($settings) { $this->zipFile($settings); } パブリック関数 zipFile($settings) { $this->zip = 新しい ZipArchive(); $this->設定 = 新しい stdClass(); foreach ($settings as $k => $v) { $this->設定->$k = $v; } } パブリック関数 create() { $this->fileHash = md5(implode(",", $this->files)); $this->fileInfo["name"] = $this->fileHash .zip"; $this->fileInfo["numFiles"] = count($this->files); $this->fileInfo["fullFilePath"] = $this->設定->パス . "/" . $this->fileInfo["name"]; if (file_exists($this->fileInfo["fullFilePath"])) { 配列を返す ( 偽、 「すでに作成されました: " . $this->fileInfo["fullFilePath"] ); } その他 { $this->zip->open($this->fileInfo["fullFilePath"], ZIPARCHIVE::CREATE); $this->addFiles(); $this->zip->close(); 配列を返す ( 本当です 「新しいファイルが作成されました:」 . $this->fileInfo["fullFilePath"] ); } } プライベート関数 addFiles() { foreach ($this->files as $k) { $this->zip->addFile($k, ベース名($k)); } } } $settings = 配列 ( 「パス」 => ディレクトリ名(__FILE__) ); $zipFile = 新しい zipFile($settings); $zipFile->files = 配列 ( "./images/navoff.jpg", "./images/navon.jpg" ); list($success, $error) = $zipFile->create(); if ($success === true) { //成功 } その他 { //エラーの理由: $error } ?> |