2009-10-19 3 views
0

Как я могу добавить документ Word в другой документ Word с помощью PHP (fwrite)?Добавить документ Word в другой документ Word с PHP

$filename = "./1.doc"; 
$handle = fopen($filename, "r"); 
$contents = fread($handle, filesize($filename)); 

$filename2 = "./2.doc"; 
$handle2 = fopen($filename2, "r"); 
$contents2 = fread($handle2, filesize($filename2)); 

$contents3 =$contents2.$contents; 
$fp = fopen("./3.doc", 'w+'); 

fwrite($fp, $contents); 

3.doc содержит только 1.doc.

ответ

1

Похоже, у вас есть опечатка в коде на последней строке:

fwrite($fp, $contents); 

должен быть

fwrite($fp, $contents3); 
+0

спасибо, я видел это, но это не было моей проблемой :-(Еще только видеть содержимое 1.doc – jsmb

-1

я бы не стал с Еореп для первых двух, только file_get_contents() , то Еореп 3.doc и писать в него, что путь

 
$file1 = (is_file("./1.doc"))?file_get_contents("./1.doc"):""; 
$file2 = (is_file("./2.doc"))?file_get_contents("./2.doc"):""; 
$file3_cont = $file1.$file2; 

if(is_file("./3.doc")){ 
    if(($fp = @fopen("./3.doc", "w+")) !== false){ 
    if(fwrite($fp, $file3_cont) !== false){ 
    echo "File 3 written."; 
    } 
    } 
} 
3

Прежде всего, вы только на самом деле fwriting() переменная $contents, а не $contents3.

Реальная проблема заключается в том, что внутренняя структура документа Word более сложна. Документ Word содержит определенное количество преамбулы и обертывания. Если вы просто соедините два документа Word, вы, возможно, , возможно, * останутся только с файлом мусора. Вам понадобится библиотека, которая может анализировать файлы Word, извлекать только фактический текстовый контент, конкатенировать текст и сохранять его в виде нового файла Word.

*) Испытано это просто для удовольствия, Word действительно ничего не может сделать с файлом из двух сцепленных файлов .doc.

+0

Хороший вопрос! Никогда не думал об этом, я всегда работаю с .txts, никогда не пользуюсь .docs – Psytronic

+0

Пробовал, так как он только напишет первый файл документа на третий – Psytronic

+0

Хорошо спасибо, мне нужно будет найти другой способ! – jsmb

Смежные вопросы