私はphp/mysql生成テーブルをダウンロード可能なcsvファイルに変換しようとしています。ユーザが検索パラメータを入力すると、mysqlテーブルが呼び出され、結果がテーブルとして返されます。PHPを使用してCSVファイルに列ヘッダーを追加
私はこのスレッドで提供されるソリューションを使用し、それが途方も動作します:Create a CSV File for a user in PHP
私は、ユーザーがCSVファイルとして結果を保存するか表示できるようにすることができています。私が抱えている問題は、ファイルに列ヘッダーを追加する方法がわかりません。たとえば、結果は$ result [x] ['office']、$ result [x] ['user']などの形式で返されますが、 "Office"と "User"を使用して、csvファイルを見ている人は誰でもデータの意味をすぐに知ることができます。
これは、CSVファイルを生成する関数です:
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=$file.csv");
header("Pragma: no-cache");
header("Expires: 0");
outputCSV($data);
function outputCSV($data) {
$outstream = fopen("php://output", "a");
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals); // add parameters if you want
}
array_walk($data, "__outputCSV", $outstream);
fclose($outstream);
}
私は次の関数を作成しようとした、そして私はoutputCSVを呼び出す直前にそれを呼び出し、それが成功しなかった。
function create_file_header()
{
$headers = 'Office, User, Tag, Value';
$fp = fopen("php://output", "w");
file_put_contents("$file.csv", $headers);
fclose($fp);
}
ご協力いただきまして誠にありがとうございます。
'w'モードでファイルを開くhttp://php.net/manual/en/function.fopen.php – CBusBus