csvファイル

結論

データの移行に便利な、カンマ区切りのデータのこと。

csvファイルとは

まずcsvはcomma-separated values(略称:CSV)。カンマ区切りの値とされる。良くあるのは業務上のデータをcsv形式で保存して出力するパターンだろうか。私が経験したことがあるのはcsv形式データをエクセルで出力すること。

csvファイルにはデータ型の情報が無いようだ。DBから検索して取得したデータを出力したところで、元が数値型だったのか、日付型だったのか等が分からなくならないように設定して取り込む必要がある。なんでcsv形式を使うかというと、データの互換性があるから。使い勝手が良いということ。

csv出力に使う関数

実際にどう使うか。
ファイルをどう読み込みかにも寄ると思うが、まずcsv形式で出力するためのデータを整える必要がある。csvで出したいデータを関数を使って取り出す。処理は関数内に書く。処理が複雑になることを嫌うのなら、csv関係の処理を記述したものだけ別ファイルにして、それを呼び出した方が良いのかもしれない。

fopenfputcsvfclose。これらを使う。公式を見てみる。

<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');//準備

foreach ($list as $fields) {
    fputcsv($fp, $fields);//csv形式で書き出し
}

fclose($fp);//閉じる
?>

このうち、fputcsv($fp, $fields);は、$fpがfopen()で開かれた有効なファイルポインタであり、$fieldsは文字列の配列のこと。
ブラウザ側ではpost形式等にして、データの有無で出力させるか否かの処理を加える。用途にもよると思うが、計算方法やデータに誤りが無いように処理を記述したい。csvのデータ自体は配列で組んでいるようなので、データの組み方はさほど変わらないようだが、fputcsv()辺りの処理がどのように動いているか確認する。

まとめ

使い勝手の良いデータ。データの組み方、途中のfputcsv()の処理を確認する。

basic, php

Posted by himajinn