本文实例讲述了php生成zip文件类。分享给大家供大家参考。具体如下:
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
|
<?php /* By: Matt Ford Purpose: Basic class to create zipfiles */ class zipFile { public $files = array (); public $settings = NULL; public $fileInfo = array ( "name" => "" , "numFiles" => 0, "fullFilePath" => "" ); private $fileHash = "" ; private $zip = "" ; public function __construct( $settings ) { $this ->zipFile( $settings ); } public function zipFile( $settings ) { $this ->zip = new ZipArchive(); $this ->settings = new stdClass(); foreach ( $settings as $k => $v ) { $this ->settings-> $k = $v ; } } public function create() { $this ->fileHash = md5(implode( "," , $this ->files)); $this ->fileInfo[ "name" ] = $this ->fileHash . ".zip" ; $this ->fileInfo[ "numFiles" ] = count ( $this ->files); $this ->fileInfo[ "fullFilePath" ] = $this ->settings->path . "/" . $this ->fileInfo[ "name" ]; if ( file_exists ( $this ->fileInfo[ "fullFilePath" ])) { return array ( false, "already created: " . $this ->fileInfo[ "fullFilePath" ] ); } else { $this ->zip->open( $this ->fileInfo[ "fullFilePath" ], ZIPARCHIVE::CREATE); $this ->addFiles(); $this ->zip->close(); return array ( true, "new file created: " . $this ->fileInfo[ "fullFilePath" ] ); } } private function addFiles() { foreach ( $this ->files as $k ) { $this ->zip->addFile( $k , basename ( $k )); } } } $settings = array ( "path" => dirname( __FILE__ ) ); $zipFile = new zipFile( $settings ); $zipFile ->files = array ( "./images/navoff.jpg" , "./images/navon.jpg" ); list( $success , $error ) = $zipFile ->create(); if ( $success === true) { //success } else { //error because: $error } ?> |
希望本文所述对大家的php程序设计有所帮助。