PHP code example of volcanus / csv
1. Go to this page and download the library: Download volcanus/csv library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
volcanus / csv example snippets
$file = new \SplFileObject('php://temp', 'r+');
$writer = \Volcanus\Csv\Writer(array(
'inputEncoding' => 'UTF-8',
'outputEncoding' => 'SJIS',
'writeHeaderLine' => true,
'responseFilename' => 'users.csv',
));
$writer->fields(array(
array('id' , 'ユーザーID'),
array('name' , '名前'),
));
$db = new \PDO('sqlite:/path/to/database');
$statement = $db->query('SELECT id, name FROM users', \PDO::FETCH_ASSOC);
// データベースから取得した結果をCSVに変換してファイルに書き込む
$writer->file = $file
$writer->write($statement);
// レスポンスヘッダとCSVを出力
$writer->send();
$file = new \SplFileObject('php://temp', 'r+');
$writer = \Volcanus\Csv\Writer(array(
'inputEncoding' => 'UTF-8',
'outputEncoding' => 'SJIS',
'writeHeaderLine' => true,
'responseFilename' => 'users.csv',
));
$writer->fields(array(
array('id' , 'ユーザーID'),
array('name' , '名前'),
));
$db = new \PDO('sqlite:/path/to/database');
$statement = $db->query('SELECT id, name FROM users', \PDO::FETCH_ASSOC);
// データベースから取得した結果をCSVに変換してファイルに書き込む
$writer->file = $file
$writer->write($statement);
$reader = new \Volcanus\Csv\Reader(array(
'inputEncoding' => 'SJIS',
'outputEncoding' => 'UTF-8',
));
// CSVファイル1レコード毎のフィルタを定義
$reader->appendFilter(function($item) use ($reader) {
// 1件目はヘッダ行なので除外する。
// FALSEを返すとparsedのみカウントされ、fetchedはカウントされない。
if ($reader->parsed === 1) {
return false;
}
if ($reader->fetched > 10000) {
throw new \RuntimeException('件数多すぎ');
}
$user = array(
'id' => $item[0],
'name' => $item[1],
);
return sprintf('<li>[%s]%s</li>',
htmlspecialchars($item[0], ENT_QUOTES, 'UTF-8'),
htmlspecialchars($item[1], ENT_QUOTES, 'UTF-8')
);
});
$writer->file = file;
// CSVファイルを読み込んでHTML出力
echo sprintf('<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<ul>%s</ul>
</body>
</html>', implode("\n", $reader->fetchAll()));