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()));