首先我们要清楚流程,第一步:生成相应的目录,(判断目录是否存在,不存在就创建),第二步:循环生成word文档,第三步:压缩成zip文件并下载
然后我们再进行代码的实现:
第一:我们要写两个函数,创建文件夹和删除文件夹
//创建文件夹 的函数
function makeDir($path) {
if (empty ( $path )) {
echo "路径不能为空";
}
$dirs = array ();
$path = preg_replace ( '/(\/){2,}|{\\\}{1,}/', '/', $path );
$dirs = explode ( "/", $path );
$path = "";
foreach ( $dirs as $folder ) {
$path .= $folder . "/";
if (! is_dir ( $path )) {
mkdir ( $path, 0700 );
}
}
if (is_dir ( $path )) {
return TRUE;
} else {
return FALSE;
}
}
//删除文件夹 的函数
function rmdirs($dir) {
$dir = realpath ( $dir );
if ($dir == '' || $dir == '/' || (strlen ( $dir ) == 3 && substr ( $dir, 1 ) == '://')) {
return false;
}
if (false !== ($dh = opendir ( $dir ))) {
while ( false !== ($file = readdir ( $dh )) ) {
if ($file == '.' || $file == '..') {
continue;
}
$path = $dir . DIRECTORY_SEPARATOR . $file;
if (is_dir ( $path )) {
if (! rmdirs ( $path )) {
return false;
}
} else {
unlink ( $path );
}
}
closedir ( $dh );
rmdir ( $dir );
return true;
} else {
return false;
}
}
第二:写出相应的代码
<?php
$dir_teaname = './Public/Word/'; //要创建的文件夹名称 Word
//判断目录是否存在,存在就删除
if(is_dir($dir_teaname)){
rmdirs($dir_teaname); //删除目录
}
//创建目录
$mk = makeDir( $dir_teaname );
if( !$mk )
{
echo "创建目录失败!";
}
//循环生成word
foreach ($appraise_score as $key => $val)
{
//生成word文档
import("@.ORG.Word"); //下面会给Word类的链接地址,下载不需要积分
$savePath = $dir_teaname;
$word = new word();
$word->start();
//thinkphp中的显示页面 也可以直接用 echo "这里是要生成的内容";
$this->display();
$wordname = time().$key.'.doc'; //生成的word名称
$wordname=iconv("utf-8","gb2312",$wordname); //编码转换
$word->save($savePath.$wordname);
}
import("@.ORG.PHPZip"); //下面会给PHPZip类的链接地址,下载不需要积分
$archive = new PHPZip();
//压缩下载 不存储在指定目录 第一个参数:要压缩下载的文件夹 第二个参数:下载文件名
$this_depart = '下载以后的压缩包名称'; //在下载时候以及下载成功的压缩包名称
$archive->ZipAndDownload($dir_teaname,$this_depart);
?>
以上就是全部内容
下面是Word类和PHPZip累的下载地址:
PHPZip类,Word类: