博客列表 >php合并多个word文件

php合并多个word文件

鱼的熊掌
鱼的熊掌原创
2022年12月16日 16:47:051555浏览

tbszip下载


  1. include_once('extend/tbszip.php');
  2. $zip = new \clsTbsZip();
  3. $path = 'Public/File/2022/'; //docx文件所在目录
  4. $filelist=scandir($path);
  5. foreach($filelist as $ks=>$vs) {
  6. if ($vs=='.' || $vs=='..' || $vs=='.DS_Store') {
  7. continue;
  8. }
  9. $zip->Open($path.$vs);
  10. $content1 = $zip->FileRead('word/document.xml');
  11. $zip->Close();
  12. $p = strpos($content1, '<w:body');
  13. if ($p===false) exit("失败");
  14. $p = strpos($content1, '>', $p);
  15. $content1 = substr($content1, $p+1);
  16. $p = strpos($content1, '</w:body>');
  17. if ($p===false) exit("失败");
  18. $content1 = substr($content1, 0, $p);
  19. $strs='<w:p><w:pPr><w:rPr><w:sz w:val="21"/><w:szCs w:val="21"/></w:rPr></w:pPr></w:p><w:p/><w:p/><w:p/><w:p/><w:p/><w:p/><w:p/><w:p/><w:p><w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/></w:rPr></w:pPr></w:p><w:p/><w:p/><w:p/><w:p/><w:p/><w:p><w:r><mc:AlternateContent>';
  20. $oldstrs='<w:p><w:pPr><w:rPr><w:sz w:val="21"/><w:szCs w:val="21"/></w:rPr></w:pPr></w:p><w:p/><w:p/><w:p/><w:p/><w:p/><w:p/><w:p/><w:p/><w:p><w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/></w:rPr></w:pPr></w:p><w:p/><w:p/><w:p/><w:p><w:r><mc:AlternateContent>';
  21. $content1=str_replace($strs,$oldstrs,$content1);
  22. $contents[]=$content1;
  23. }
  24. $zip->Open($path."/empty.docx"); // 空的docx文件
  25. $content2 = $zip->FileRead('word/document.xml');
  26. $p = strpos($content2, '</w:body>');
  27. if ($p===false) exit("失败");
  28. $content2 = substr_replace($content2, implode('',$contents), $p, 0);
  29. $zip->FileReplace('word/document.xml', $content2, TBSZIP_STRING);
  30. $savePath='Public/Write/merges.docx';
  31. // 合并docx文件存储地址
  32. $zip->Flush(TBSZIP_FILE,$savePath);
  33. //或者输出下载
  34. header("Cache-Control: public");
  35. header("Content-Description: File Transfer");
  36. header('Content-disposition: attachment; filename='.basename($zipfilename)); //文件名
  37. header("Content-Type: application/force-download");
  38. header("Content-Transfer-Encoding: binary");
  39. header('Content-Length: '. filesize($savePath)); //告诉浏览器,文件大小
  40. readfile($savePath);
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议