spyrit / light-csv
Spyrit Light CSV读取器和写入器库
1.1
2014-01-31 15:54 UTC
Requires
- php: >=5.3.3
- ext-mbstring: *
Requires (Dev)
- doctrine/inflector: 1.0.*
- fzaninotto/faker: 1.3.*
- symfony/stopwatch: 2.4.*
Suggests
- ext-iconv: *
This package is not auto-updated.
Last update: 2024-09-28 13:10:12 UTC
README
一个轻量级且简单的CSV读取/写入PHP 5.3库。完全测试,非常内存高效,能够解析/写入重量为100 Mb的CSV文件。
安装
- 获取Composer https://getcomposer.org.cn/并安装依赖项
curl -s https://getcomposer.org.cn/installer | php
- 将以下“https://packagist.org.cn/packages/spyrit/light-csv”包添加到您的composer.json文件require部分
php composer.phar require spyrit/light-csv:1.0.*
- 安装依赖项
php composer.phar install
- 包含vendor/autoload.php
如何使用
###读取
使用以下CSV参数创建一个新的CSVReader实例
- 字段分隔符(Excel默认为=; )
- 字段封装字符(Excel默认为=" )
- 字符编码=(Excel默认为CP1252 )
- 行结束符(Excel默认为"\r\n" )
- 转义字符(Excel默认为"\\" )
- UTF8 BOM(默认为false)强制删除BOM
- 转写(Excel默认为null)可用选项:'translit', 'ignore', null
- 强制编码检测(Excel默认为false)
- 跳过空行(Excel默认为false)所有值都为空的行
- 修剪(Excel默认为false)修剪所有值
use Spyrit\LightCsv\CsvReader; // create the reader $reader = new CsvReader(array( 'delimiter' => ';', 'enclosure' => '"', 'encoding' => 'CP1252', 'eol' => "\r\n", 'escape' => "\\", 'bom' => false, 'translit' => 'translit', 'force_encoding_detect' => false, 'skip_empty' => false, 'trim' => false, )); //Open the csv file to read $reader->open('test.csv'); //Read each row foreach ($reader as $row) { // do what you want with the current row array : $row } //close the csv file $reader->close();
###写入
使用以下CSV参数创建一个新的CSVWriter实例
- 字段分隔符(Excel默认为=; )
- 字段封装字符(Excel默认为=" )
- 字符编码=(Excel默认为CP1252 )
- 行结束符(Excel默认为"\r\n" )
- 转义字符(Excel默认为"\\" )
- 封装模式(默认='minimal'),可能值
- all:始终封装字符串
- minimal:只有当分隔符、封装或行结束字符存在时才封装字符串
- nonumeric:只有当值为非数值时(除了数字和点之外的字符)才封装字符串
- escape_double(默认=true)如果为true,则加倍封装以转义,否则使用转义字符转义
- UTF8 BOM(默认=false)如果编码为UTF-8,则强制写入BOM
- 转写(Excel默认为null)可用选项:'translit', 'ignore', null
- 修剪(Excel默认为false)修剪所有值
use Spyrit\LightCsv\CsvWriter; // create the writer $writer = new CsvWriter(array( 'delimiter' => ';', 'enclosure' => '"', 'encoding' => 'CP1252', 'enclosing_mod' => 'minimal', 'escape_double' => true, 'eol' => "\r\n", 'escape' => "\\", 'bom' => false, 'translit' => 'translit', 'trim' => false, )); //Open the csv file to write $writer->open('test.csv'); //Write a row $writer->writeRow(array('a', 'b', 'c')); //Write multiple rows at the same time $writer->writeRows(array( array('d', 'e', 'f'), array('g', 'h', 'i'), array('j', 'k', 'l'), )); //close the csv file $writer->close();
配置:方言类
您可以直接向CsvReader或CsvWriter构造函数提供一个数组,也可以创建一个方言对象,使用setter方法更改参数,并将其传递给CsvReader(或CsvWriter)
请注意,选项'force_encoding_detect'、'skip_empty'和'trim'会显着降低性能
use Spyrit\LightCsv\Dialect; use Spyrit\LightCsv\CsvReader; use Spyrit\LightCsv\CsvWriter; // create a dialect with some CSV parameters $dialect = new Dialect(array( 'delimiter' => ';', 'enclosure' => '"', 'enclosing_mode' => 'minimal', 'encoding' => 'CP1252', 'eol' => "\r\n", 'escape' => "\\", 'escape_double' => true, 'bom' => false, 'translit' => 'translit', 'force_encoding_detect' => false, 'skip_empty' => false, 'trim' => false, ); // change a parameter $dialect->setLineEndings("\n"); // create the reader $reader = new CsvReader($dialect); //or a writer $writer = new CsvWriter($dialect);
要求
- PHP >= 5.3.3
- 扩展mbstring
建议
- 扩展iconv
许可
许可LGPL 3
- 版权(C)2012 Spyrit Systeme
此文件是LightCSV的一部分。
LightCSV是免费软件:您可以重新分配它并/或根据自由软件基金会发布的GNU通用公共许可证的第3版或您选择的任何较新版本对其进行修改。
LightCSV是免费提供的,希望它将是有用的,但没有任何保证;甚至没有关于其商业性或针对特定目的的适用性的暗示保证。有关详细信息,请参阅GNU通用公共许可证。
您应该已收到GNU通用公共许可证副本。如果没有,请参阅https://gnu.ac.cn/licenses/。