合并 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');
我有多个文件(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');