php教程

超轻量级php框架startmvc

php生成zip文件类实例

更新时间:2020-03-03 22:19:14 作者:startmvc
本文实例讲述了php生成zip文件类。分享给大家供大家参考。具体如下:<?php/*By:MattFordPu

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


<?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程序设计有所帮助。

php 生成 zip文件