1

データベースから取得したデータは、行が1つしかない限り、問題なくRTFテンプレートに挿入されます。ただし、ループ内に入れるとheader("Content-type: text/rtf")、ヘッダー送信済みエラーが表示されます。コードからヘッダーを削除すると、生データがブラウザウィンドウに正しく出力されます。

データベース内の複数のレコードのデータを組み合わせて、複数のドキュメント(またはページ分割のある1つのドキュメント)を作成するにはどうすればよいですか?

ここにコード:

$document='../docs/letter.rtf';
$qry="Select * from table";
$result=mysql_query($qry);
$num_row=mysql_num_rows($result);

while($row=mysql_fetch_assoc($result)){
$account_id=$row['pk_account];
$name=$row['first_name'];
$file_doc='01-'.$pk_account.'.rtf';
....

$body=file_get_contents($document);
$body=str_replace("NAME", $name, $body);
....

for($i=0; $i<$num_rows; $i++){
}

header("Content-type: text/rtf");
header("Content-Disposition:attachment; filename={$file_doc}");
echo $body;
}
4

1 に答える 1

0

$body を連結する必要があります。したがって、これの代わりに:

$body=file_get_contents($document);
$body=str_replace("NAME", $name, $body);

これを試して:

$body.=str_replace("NAME", $name, file_get_contents($document));

次に、これを while ループの外側に配置します。

header("Content-type: text/rtf");
header("Content-Disposition:attachment; filename={$file_doc}");
echo $body;
于 2012-10-16T21:49:19.037 に答える