tonyfarney/csv-writer

易于使用的 PHP 7+ CSV 写入器

1.0.0 2020-05-29 21:38 UTC

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。我将很高兴帮助您 ;)