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を簡単に取り扱える「LeagueCSV(thephpleague / csv)」の利用方法
PHPでCSVファイルの書き込みや読み込みを行う際、バニラPHPで対応していたが ...
-
CSVファイルを使って郵便番号から住所を抽出する
■ソース <? error_reporting(E_ALL & ~ ...
-
PHPからCSVファイルを出力する際にメモリを節約する方法
MySQLよりデータを大量に取り出してCSVファイル化し、ダウンロードさせるとい ...
-
PHPで簡単にCSVファイルの生成
簡単にデータ並べるだけのCSVファイル生成。 file_put_contensで ...