原理是通过tbszip把两个word文档作为xml读出来,然后通过xml拆分拼接成一个文档,最后再转回word。对于一般不复杂的word文档基本适用。过于复杂的word另当别论。

1.下载合并所需的库

下载tbszip的类库。
或者去官网自行下载 官方网址

2.具体代码

include_once('tbszip.php');
$Old = 'test1.docx';
$New = 'test2.docx';

$zip = new clsTbsZip();

// Open the first document
$zip->Open($New);
$content1 = $zip->FileRead('word/document.xml');
$zip->Close();

// Extract the content of the first document
$p = strpos($content1, '<w:body');
if ($p===false) exit("Tag <w:body> not found in document 1.");
$p = strpos($content1, '>', $p);
$content1 = substr($content1, $p+1);
$p = strpos($content1, '</w:body>');
if ($p===false) exit("Tag </w:body> not found in document 1.");
$content1 = substr($content1, 0, $p);

// Insert into the second document
$zip->Open($Old);
$content2 = $zip->FileRead('word/document.xml');
$p = strpos($content2, '</w:body>');
if ($p===false) exit("Tag </w:body> not found in document 2.");
$content2 = substr_replace($content2, $content1, $p, 0);
$zip->FileReplace('word/document.xml', $content2, TBSZIP_STRING);

// Save the merge into a third file
$zip->Flush(TBSZIP_FILE, 'merge.docx');
文章目录