データベースから取得したデータは、行が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;
}