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!'; }
関連記事
-
フォームからCSVファイルをアップロードしてPHPの配列に格納する方法
formからcsvファイルをアップロードさせて、PHPで色々処理したかった。とり ...
-
PHPで改行を含むデータをCSV化する際に表示崩れを防ぐ方法
PHPで改行を含むデータをCSV化した場合、そのCSVファイルをエクセル等で開く ...
-
PHPで配列データをCSVとしてダウンロードさせる方法
PHPでログ的なデータをCSV化したかった。ただ、複数の人間が使うのでCSVファ ...
-
PHPでCSVを簡単に取り扱える「LeagueCSV(thephpleague / csv)」の利用方法
PHPでCSVファイルの書き込みや読み込みを行う際、バニラPHPで対応していたが ...
-
CSVファイルを使って郵便番号から住所を抽出する
■ソース <? error_reporting(E_ALL & ~ ...