PHPでCSVファイル出力用の関数
2024/01/12
ここのところログ系をCSVファイル出力にするケースが多かった為、使いまわせるように関数のメモ。
ソース
function createCsv( $title, $data, $name ){ //title(array),data(array), name(string)
if( !is_array($data) || empty($data) ) return false;
$csv = '';
if( is_array($title) && !empty($title) ){ //タイトルがある場合は1行目に挿入
$csv .= implode(",", $title) . "\n";
}
foreach( $data as $val ){ //中身を挿入
$csv .= implode(",", $val) . "\n";
}
if( $csv ){ //CSV出力
mb_convert_variables('SJIS', 'UTF-8', $csv);
$fileName = ( $name ) ? $name . ".csv" : date("YmdHis") . ".csv"; //CSVファイルの名前指定の有無
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $fileName);
echo $csv;
exit();
} else {
return false;
}
}
使い方
$title = array('番号', '得点', '名前');
$data = array(
0 => array(
'code' => '1',
'point' => '75',
'name' => 'hoge',
),
1 => array(
'code' => '2',
'point' => '30',
'name' => 'fuga',
),
2 => array(
'code' => '3',
'point' => '55',
'name' => 'foo',
),
);
$name = '得点表';
if( !createCsv($title, $data, $name) ){
echo 'error!';
}
関連記事
-
-
PHPで配列データをCSVとしてダウンロードさせる方法
PHPでログ的なデータをCSV化したかった。ただ、複数の人間が使うのでCSVファ ...
-
-
PHPで簡単にCSVファイルの生成
簡単にデータ並べるだけのCSVファイル生成。 file_put_contensで ...
-
-
フォームからCSVファイルをアップロードしてPHPの配列に格納する方法
formからcsvファイルをアップロードさせて、PHPで色々処理したかった。とり ...
-
-
PHPからCSVファイルを出力する際にメモリを節約する方法
MySQLよりデータを大量に取り出してCSVファイル化し、ダウンロードさせるとい ...
-
-
PHPでCSVを簡単に取り扱える「LeagueCSV(thephpleague / csv)」の利用方法
PHPでCSVファイルの書き込みや読み込みを行う際、バニラPHPで対応していたが ...