電子書籍の厳選無料作品が豊富!

PHPでDBに接続してテーブルのバックアップを取るプログラム(ファイルのダウンロード)を作成していますが、
上手く動作しません。
bktbl.phpにアクセスすると、HTML部分まで「test.csv」として保存されてしまいます。
何故なのでしょうか。。
どなたか教えて下さい。よろしくお願いします。
(プログラム内で間違ってる部分もあれば・・教えて頂きたく)

逆に、バックアップしたファイルをインポートする場合は、pg_copy_fromでいけますよね?


bktbl.php

<?php
//DB接続処理
・・・・
  ・・・・

$rows = pg_copy_to($connection,"テーブル名");;

//DB切断処理
・・・・
  ・・・・

$file = implode("\r\n", $rows);
$file_size = strlen($file);
header("Content-type: application/x-csv");
header("Content-Disposition: inline; filename=test.csv");
header("Content-Length: $file_size");
print $file;

?>


<HTML>
HTML記述部分
</HTML>

A 回答 (2件)

header("Content-type: application/x-csv");


header("Content-Disposition: inline; filename=test.csv");

この2行があるので、このスクリプトファイルの出力は全てcsvになります。1つのスクリプトに出力は1つですから、CSVをダウンロードさせつつHTMLをブラウザに表示、という事はPHPだけではできないです。
    • good
    • 0
この回答へのお礼

そういうことだったのですね。。
どうしてHTMLまで出力されるのか気がつかなかったです。
ありがとうございました。

お礼日時:2005/06/06 14:00

余計なヘッダーが出力されているに一票



DBの処理をせずに、$fileに適当な文字列を入れて
Content-typeをOctに変えてテストしてみれば
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!