合并多文档&;php中的docx文件

合并多文档&;php中的docx文件,php,tinybutstrong,Php,Tinybutstrong,我有多个文件(doc和docx),可能还有一个,这是由用户定义的。 我会得到它所有和打印在一个文件,所以我需要合并到一个文件 $filePath = '../part_folder/' ; $filesName = [ '1_en.docx' , '2_en.docx' , '3_en.docx' , '3_en.docx' , '5_en.docx' ,

我有多个文件(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='';
对于($i=1;$iOpen($filePath.$filesName[$i]);
$content[$i]=$zip->FileRead('word/document.xml');
$zip->Close();
//提取文档的内容
$p=strpos($content[$i],“”,$p);
$content[$i]=substr($content[$i],$p+1);
$p=strpos($content[$i],“”);
如果($p==false)
echo(“在文档中找不到标记。”。$filesName[$i]);
$content[$i]=substr($content[$i],0,$p);
$r.=$content[$i];
}
//在第一份文件后插入
$zip->Open($filePath.$filesName[0]);
$content2=$zip->FileRead('word/document.xml');
$p=strpos($content2',);
如果($p==false)
echo(“在文档中找不到标记。”。$filesName[0]);
$content2=substr\u replace($content2,$r,$p,0);
$zip->FileReplace('word/document.xml',$content2,TBSZIP_字符串);
$zip->Flush(TBSZIP_文件'merge.docx');

请添加您到目前为止所做的代码,我建议获取所有文件数据,创建数组,合并所有数组,并编写一个新的文档文件。
 $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');