tonyfarney / csv-writer
易于使用的 PHP 7+ CSV 写入器
1.0.0
2020-05-29 21:38 UTC
Requires
- php: ^7.0|^8.0
This package is auto-updated.
Last update: 2024-09-29 05:29:49 UTC
README
易于使用的 PHP 7+ CSV 写入器
安装
在项目根目录中,运行以下 composer 命令
$ composer require tonyfarney/csv-writer
为了使用实现的编码转换,您需要安装 mbstring 扩展或等效的 polyfill,例如 symfony/polyfill-mbstring。
从数据数组写入 CSV 文件
CSVWriter 从包含行和列的数据数组生成 CSV 文件。示例
<?php
require __DIR__.'/vendor/autoload.php';
use \CSVWriter\CSVWriter;
$lines = [
['name', 'role', 'age'],
['Tony Farney', 'Developer', 30],
['The Coffe Guy', 'Intern', 18],
['Someone Else', 'Developer', 26],
];
$writer = new CSVWriter();
// Add lines to the buffer
foreach ($lines as $line) {
$writer->addLine($line);
}
// Saves the buffer to a file
$writer->save('/tmp/file.csv');
// Gets de generated CSV from buffer
$csv = $writer->getCSV();
echo $csv."\n\n";
// Changes the configuration and get new CSV from buffer
$newCsv = $writer->setEnclosureRule(CSVWriter::ENCLOSURE_NONE)
->setNewLineDelimiter("\r\n")
->setColumnDelimiter(';')
->setEncodings('UTF-8', 'ISO-8859-1') // Converts from UTF-8 to ISO-8859-1
->getCSV()
;
echo $newCsv;
echo $csv; 输出
"name","role","age"
"Tony Farney","Developer","30"
"The Coffe Guy","Intern","18"
"Someone Else","Developer","26"
echo $newCsv; 输出
name;role;age
Tony Farney;Developer;30
The Coffe Guy;Intern;18
Someone Else;Developer;26
提示
在写入文件时,可以通过限制缓冲区大小来节省内存
// Causes writing to file and clearing the buffer when buffer reaches 1000 lines
$writer->setMaxLinesBuffer(1000);
可以在任何时候重置配置并清除缓冲区
// Resets all configurations to it's default value
$writer->resetConfig();
// Clears the buffer
$writer->clearBuffer();
// Resets config and clears the buffer
$writer->reset();
贡献/支持
欢迎您通过改进、错误修复、新想法等方式进行贡献。如有任何疑问/问题,请通过电子邮件联系我: tonyfarney@gmail.com。我将很高兴帮助您 ;)