合并 php 中的多个 doc 和 docx 文件

Merge multi doc & docx files in php

我有多个文件(doc 和 docx),也许一个,也许更多这是由用户定义的。 我会把它全部打印在一个文件中所以我需要将它合并到一个文件中。

 $filePath   =  '../part_folder/' ;
 $filesName  = [
            '1_en.docx' ,
            '2_en.docx' ,
            '3_en.docx' ,
            '3_en.docx' ,
            '5_en.docx' ,
        ];
//******** in result i want to make one file from it
$finalFile = mergeDocumentParts($filePath , $filesName);
 $zip = new clsTbsZip();
        $content = [] ;
        $r = '';
        for ($i = 1  ; $i <  count($filesName)    ; $i++){
        // Open the all document - 1
            $zip -> Open($filePath . $filesName[$i]);
            $content[$i] = $zip->FileRead('word/document.xml');
            $zip->Close();
            // Extract the content of  document
            $p = strpos($content[$i], '<w:body');
            if ($p===false)
                echo ("Tag <w:body> not found in document .".$filesName[$i] );
            $p = strpos($content[$i], '>', $p);
            $content[$i] = substr($content[$i], $p+1);
            $p = strpos($content[$i], '</w:body>');
            if ($p===false)
                echo ("Tag <w:body> not found in document .".$filesName[$i] );
            $content[$i] = substr($content[$i], 0, $p);
            $r .= $content[$i]  ;
        }
        // Insert after first document
        $zip->Open($filePath . $filesName[0]);
        $content2 = $zip->FileRead('word/document.xml');
        $p = strpos($content2, '</w:body>');
        if ($p===false)
            echo ("Tag <w:body> not found in document .".$filesName[0] );
        $content2 = substr_replace($content2, $r, $p, 0);
        $zip->FileReplace('word/document.xml', $content2, TBSZIP_STRING);
        $zip->Flush(TBSZIP_FILE, 'merge.docx');