PHP生成多个word并打包为zip

记得安装zip扩展哦

<?php
$data = array(
    array(1,2,3),
    array(1,2,13),
);
// 生成的压缩包位置
$filename = "/tmp/wordTest.zip";
$zip = new ZipArchive();

// 打开压缩包
$zip->open($filename,ZipArchive::CREATE);
$allWord = array();
// 循环生成文件
foreach ($data as $key => $value)
{
    // 开启缓冲区
    ob_start();

    $type = '这是表头';
    $content = ' 
        <div><h5>这是:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$type.'</h5><div/>
        <div><h5>标题:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$key. '</h5><div/>    
    '; 
    // 输出
    echo $content;

    // 得到输出内容
    $data = ob_get_contents();

    
    // 关闭缓冲区
    ob_end_clean();
    
    // 生成的word存放地址
    $wordname="/tmp/test".$key.".doc";
    $allWord[] = $wordname;
    // 打开文件  没有会创建
    $fp=fopen($wordname,"wb");
    
    // 写入文件
    fwrite($fp,$data);
    
    // 关闭文件
    fclose($fp);
    
    // 把文件放入压缩包
    $zip->addFile($wordname,basename($wordname));

}
// 关闭压缩包
$zip->close();

// 此段代码可选  用于删除已生成的word文件
foreach ($allWord as $aKey => $aVal)
{
    // 删除生成的word
    unlink($aVal);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章