文章来源:http://www.cnblogs.com/hello-tl/p/7661222.html
<?php
# 文件字符集
header("Content-type: text/html; charset=utf-8");
class TL_ZIP{
# web 跟
private $TL_ROOT;
# zip包 目录
private $TL_DOWNLOAD;
# zip文件名
private $TL_zipName;
public function __construct(){
# 设置web根目录
$this->TL_ROOT = str_replace("\", '/', dirname(__FILE__) . "/");
# 设置zip目录
$this->TL_DOWNLOAD = str_replace("\", '/', dirname(__FILE__)) . "/DOWNLOAD/";
}
# 设置 压缩包名称
public function getZipName($zipName){
# 判断一下文件名是否合法
$this->TL_zipName = $this->TL_DOWNLOAD . $zipName . ".zip";
return true;
}
# 获取 压缩包名称
public function setZipName(){
return $this->TL_zipName;
}
# 生成压缩包
public function createZip($arrFiles){
# 判断是否是数组
if(!is_array($arrFiles)){
return false;
}
# 判断是否设置文件名 如果没有设定文件名 我就自己生成一个 哼!!!!
if(!$this->TL_zipName){
$this->TL_zipName = $this->TL_DOWNLOAD . date('YmdHis') . rand(111111111,999999999) . ".zip";
}
# 定义zip文件名
$zipName = $this->TL_zipName;
# 调用zip类
$zipClass = new ZipArchive();
if($zipClass->open($zipName, ZIPARCHIVE::CREATE) !== TRUE) {
return false;
}
foreach($arrFiles as $path){
# 判断是否是文件
if(is_file($this->TL_ROOT.$path)){
# 把文件加入到压缩包中
$zipClass->addFile($this->TL_ROOT.$path, basename($this->TL_ROOT.$path));
}
}
$zipClass->close();
return $zipName;
}
}
$zipObj = new TL_ZIP();
$zipObj->createZip(
array(
'从设定的跟目录开始写文件地址',
'从设定的跟目录开始写文件地址',
'从设定的跟目录开始写文件地址'
)
);