0

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のみが含まれます。

4

3 に答える 3

3

まず第一に、あなたは実際にfwriting()$contents変数であり、ではありません$contents3

ただし、実際の問題は、Word文書の内部構造がより複雑になることです。Word文書には、一定量のプリアンブルとラッピングが含まれています。2つのWord文書を単純に連結すると、おそらく*ガベージファイルだけが残ります。Wordファイルを解析し、実際のテキストコンテンツのみを抽出し、テキストを連結して新しいWordファイルとして保存できるライブラリが必要になります。

*)楽しみのためだけにテストしたところ、Wordは2つの連結された.docファイルで構成されたファイルでは実際に何もできません。

于 2009-10-19T08:46:42.550 に答える
1

最後の行のコードにタイプミスがあるようです。

fwrite($fp, $contents);

する必要があります

fwrite($fp, $contents3);
于 2009-10-19T08:44:57.653 に答える
-1

最初の2つは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"ファイル3が書き込まれました。";
    }
  }
}
于 2009-10-19T08:45:02.790 に答える