在php

时间:2019-12-09 08:05:17

标签: php tinybutstrong

我有多个文件(doc和docx),也许一个或多个。这是由User定义的。 我将全部收集并打印在一个文件中,所以我需要将其合并到一个文件中。

 $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);

1 个答案:

答案 0 :(得分:0)

 $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');