联华/supercsv

此包已被弃用且不再维护。未建议替代包。

一个简单的PHP库,用于CSV读取和写入

1.0.1 2020-04-24 07:31 UTC

This package is auto-updated.

Last update: 2023-05-29 01:40:22 UTC


README

一个用于PHP中CSV读取和写入的小型库

Build Status BCH compliance License: GPL v3

概述

一个用于读取和写入CSV文件的简单PHP库。

兼容性

此库已在PHP 7.3及以上版本中进行了测试

安装

只需在您的项目中使用composer

composer require lianhua/supercsv

如果您不使用composer,克隆或下载此仓库,您所需的所有内容都在src目录中。

用法

读取CSV文件

原始数据

假设我们有一个以下的CSV文件

A,B,C,D
E,F,G,H

创建一个新的Reader,然后,您可以使用read方法逐行读取

$csv = new \Lianhua\SuperCSV\Reader("/path/to/csv");
$csv->read(); // ["A", "B", "C", "D"]
$csv->read(); // ["E", "F", "G", "H"]

您也可以使用readAll方法一次性读取整个文件

$csv = new \Lianhua\SuperCSV\Reader("/path/to/csv");
$csv->readAll(); // [["A", "B", "C", "D"], ["E", "F", "G", "H"]]

默认情况下,reader将文件视为逗号分隔,您可以直接在构造函数中更改格式,包括封装和转义字符

$csv = new \Lianhua\SuperCSV\Reader("/path/to/csv", ";", "'", "!");

带有标题

如果您的csv有标题,请确保调用getHeader方法。在读取时,reader将创建关联数组。

CSV文件

English,French
Apple,Pomme
Pear,Poire

读取

$csv = new \Lianhua\SuperCSV\Reader("/path/to/csv");
$csv->getHeader();
$csv->read(); // ["English" => "Apple", "French" => "Pomme"]
$csv->read(); // ["English" => "Pear", "French" => "Poire"]

写入CSV文件

原始数据

创建一个Writer并使用write方法

$csv = new \Lianhua\SuperCSV\Writer("/path/to/csv");
$csv->write(["A", "B", "C", "D"]);
$csv->write(["E", "F", "G", "H"]);

您将得到此CSV文件

A,B,C,D
E,F,G,H

您可以使用writeAll方法一次性写入所有数据

$csv = new \Lianhua\SuperCSV\Writer("/path/to/csv");
$csv->writeAll([["A", "B", "C", "D"], ["E", "F", "G", "H"]]);

默认情况下,writer将覆盖文件,如果您想追加而不是覆盖,则在第二个构造函数参数中给出false

$csv = new \Lianhua\SuperCSV\Writer("/path/to/csv", false);

当然,您也可以更改格式

$csv = new \Lianhua\SuperCSV\Writer("/path/to/csv", true, ";");
$csv->write(["A", "B", "C", "D"]);
$csv->write(["E", "F", "G", "H"]);

您将得到此CSV文件

A;B;C;D
E;F;G;H

带有标题

您可以使用setHeader方法写入带有标题的csv。之后您可以给出关联数组

$csv = new \Lianhua\SuperCSV\Reader("/path/to/csv");
$csv->setHeader(["English", "French"]);
$csv->write(["English" => "Apple", "French" => "Pomme"]);
$csv->write(["French" => "Poire", "English" => "Pear"]);

您将得到此CSV文件

English,French
Apple,Pomme
Pear,Poire