$file_path = 'data_100.csv';
$file = new SplFileObject($file_path);
$file->setFlags(SplFileObject::READ_CSV);
$convert_count = 0;
foreach ($file as $line) {
print_r($line);
}
PHPだけでCSV読み込みは可能ですが、工夫しないと改行のみの行も出力されます。
https://packagist.org/packages/league/csv
composerを使用します
composer require league/csv
composerを使用しているので autoload.php を読み込みます
$php_version = (float)phpversion();
if ( $php_version < 7.0 ){ die("league/csv を使用するにはPHP バージョン7.0以上が必要です");}
require './vendor/autoload.php';
use League\Csv\Reader;
// CSVファイルの読み込み
$csv = Reader::createFromPath("./language.csv");
// ヘッダ(先頭行)を取得
$headers = $csv->fetchOne();
var_dump($headers);
// CSVデータを読み込んで出力
$records = $csv->getRecords();
foreach ($records as $offset => $record) {
print_r($offset);
print_r($record);
}
$php_version = (float)phpversion();
if ( $php_version < 5.5 ){ die("league/csv を使用するにはPHP バージョン5.5以上が必要です");}
require APPPATH.'/vendor/autoload.php';
use League\Csv\Writer;
// ファイルの出力
$csv_writer = Writer::createFromFileObject(new SplTempFileObject());
$csv_writer->insertOne( array('カラム1','カラム2','カラム3' ) );
$csv_writer->output('users.csv');