私はこのサイトを調べて、これと同じことについてたくさんのスレッドを見つけましたが、答えを適切に理解していないため、私のような完全な初心者を実際に助けるものはありません.
データベースからデータを選択し、Web ページの表に表示しました。このテーブルの下に、このデータを CSV ファイルにエクスポートするためのリンクが必要です。
このサイトで見つけた答えの 1 つは、PHP でユーザー用の CSV ファイルを作成することです。
しかし、答えは私には意味がなく、コードをどうするかわかりません。
その答えのコードは次のとおりです。
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
$array = array(
array("data11", "data12", "data13"),
array("data21", "data22", "data23"),
array("data31", "data32", "data23"));
outputCSV($array);
function outputCSV($data) {
$outstream = fopen("php://output", "w");
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals); // add parameters if you want
}
array_walk($data, "__outputCSV", $outstream);
fclose($outstream);
}
最初に Excel ファイルを作成する必要がありますか? などの質問がたくさんあります。もしそうなら、空白にする必要がありますか?
これは何ですか?:
$array = array(
array("data11", "data12", "data13"),
array("data21", "data22", "data23"),
array("data31", "data32", "data23"));
これは私のデータでしょうか?私が持っているデータに合わせてそれを変更するにはどうすればよいですか?
関数が定義される前に関数が呼び出されるのはなぜですか?
関数内のこれらの変数 ($vals、$key、$filehandler) は何ですか? また、それらはどこで作成されますか?
非常に多くの人が完璧だと思っているように見えるので、このコードをどのように使用すればよいでしょうか。
私は完全なPHP初心者なので、最初から最後まで助けが必要です
私は以下の答えの1つに取り組みましたが、今ではこのコードがあります
$i=0;
$csv="";
for ($a=0; $a<=$count; $a++) {
$i++;
$csv.=preg_replace("/\n/",'',preg_replace("/,/",';',$serveys[$a]['FeedbackName'])).",".
preg_replace("/\n/",'',preg_replace("/,/",';',$serveys[$a]['BranchName']));
$csv.="\n";
}
if ($i>0) {
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"table.csv\";" );
header("Content-Transfer-Encoding: binary");
echo $csv;
} else {
return "Nothing to download!";
}
変更はありませんがページを実行すると、データはそのままページに表示されます。ただし、csvファイルは作成されず、エラーは発生しません