勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPで簡単にCSVファイルの生成

   2024/01/12  PHP

簡単にデータ並べるだけのCSVファイル生成。
file_put_contensででけた。

■ソース
<?
$file_path     = './csvlog/aaa.csv';
$data_array     = array(
0 => array('name' => 'taro', 'score' => 80),
1 => array('name' => 'kouji', 'score' => 58),
2 => array('name' => 'takeshi', 'score' => 77),
);
$data = '"ID","名前","スコア"
';
for ($i = 0; $i < count($data_array); ++$i) {
$data .= '"' . $i . '","' . $data_array[$i]['name'] . '","' . $data_array[$i]['score'] . '"
';
}
mb_convert_variables('SJIS', 'UTF-8', $data); //文字コード変換
file_put_contents($file_path, $data, LOCK_EX); //書き込み
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transtional//EN" "http://www.w3c.org/TR/html4/loose.dtd">
<meta http-equiv="content-type" content="text/html"/>
<meta cherset = "UTF-8">
<html lang="ja">
<head>
<title>CSV</title>
</head>
<body>
<h1>CSV</h1>
<? if (is_file($file_path)) : ?><!--ファイルがあった場合のみリンクを出す-->
<a href="<?=$file_path;?>">CSVリンク</a>
<? endif; ?>
</body>
</html>

■その他
エクセルはshift-jisがデフォらしい。
なのでUTF-8から変換。mb_convert_variablesだと配列も
一気に変換できる。

せっかくなので次はちゃんとCSV関連の関数を使ってみたいところ。

 - PHP

  関連記事

PHPからCSVファイルを出力する際にメモリを節約する方法

MySQLよりデータを大量に取り出してCSVファイル化し、ダウンロードさせるとい ...

CSVファイルを使って郵便番号から住所を抽出する

■ソース <? error_reporting(E_ALL & ~ ...

PHPでCSVファイル出力用の関数

ここのところログ系をCSVファイル出力にするケースが多かった為、使いまわせるよう ...

PHPで改行を含むデータをCSV化する際に表示崩れを防ぐ方法

PHPで改行を含むデータをCSV化した場合、そのCSVファイルをエクセル等で開く ...

PHPで配列データをCSVとしてダウンロードさせる方法

PHPでログ的なデータをCSV化したかった。ただ、複数の人間が使うのでCSVファ ...