使用PHP将Word文档添加到另一个Word文档

时间:2009-10-19 08:39:21

标签: php ms-word fwrite

如何使用PHP(fwrite)将Word文档添加到另一个Word文档?

$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。

3 个答案:

答案 0 :(得分:3)

首先,您实际只是fwriting() $contents变量,而不是$contents3

但真正的问题是Word文档的内部结构更复杂。 Word文档包含一定数量的序言和包装。如果您只是连接两个Word文档,那么可能 *只剩下一个垃圾文件。您需要一个可以解析Word文件的库,只提取实际的文本内容,连接文本并将其另存为新的Word文件。

  

*)测试它只是为了它的乐趣,Word确实无法对由两个连接的.doc文件组成的文件做任何事情。

答案 1 :(得分:1)

看起来你的代码在最后一行有拼写错误:

fwrite($fp, $contents);

应该是

fwrite($fp, $contents3);

答案 2 :(得分:-1)

我不打扰前两个fopen,只是file_get_contents(),然后fopen 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.";
    }
  }
}