tiisy/csv

简单的CSV文件处理。从字符串、文件、资源或URL读取CSV文件。

v0.3.0 2023-08-31 07:27 UTC

This package is auto-updated.

Last update: 2024-08-30 01:49:56 UTC


README

Tiisy CSV 提供了一种简单处理CSV文件的方法。

优点

  • 可以使用标题行逻辑将CSV文件视为关联数组(useHeaderRow: true
  • 使用PHP的本地fgetcsvfputcsv
  • 无依赖
  • 框架无关
  • 简单至上(易于维护和贡献)
  • 经过良好测试

安装

使用Composer

composer require tiisy/csv

用法

示例

<?php

use Tiisy\Csv\CsvFile;

foreach(CsvFile::createFromString("id,name\n1,foo\n2,bar") as $row => $data) {
    echo $data['id'] . ': ' . $data['name'] . PHP_EOL;
}

// will output:
// 1: foo
// 2: bar

创建CsvFile实例

示例

<?php

use Tiisy\Csv\CsvFile;

foreach(CsvFile::createFromFile('example.csv', useHeaderRow: false) as $data) {
    echo $data[0] . ': ' . $data[1];
}

创建CsvFile实例的方法

  • create(<options>) – 创建一个空CSV文件
  • createFromArray(array $data) – 使用给定的数据创建CSV文件
  • createFromFile(string $filename, <options>) – 通过给定的文件加载CSV文件
  • createFromResource(resource $handle, <options>) – 通过给定的资源加载CSV文件
  • createFromString(string $input, <options>) – 通过给定的字符串加载CSV文件
  • createFromUrl(string $url, <options>) – 通过给定的URL加载CSV文件
  • createFromGoogleSpreadsheetId(string $spreadsheetId, <options>) – 通过给定的Google电子表格ID加载CSV文件

创建CsvFile实例的options(可选)

  • useHeaderRow (默认: true) 使用第一行作为后续行的键
  • separator (默认: ,) 设置字段分隔符(仅单字节字符)
  • enclosure (默认: ") 设置字段封装字符(仅单字节字符)
  • escape (默认: \) 设置转义字符(单字节字符)

修改CSV

<?php

use Tiisy\Csv\CsvFile;

$csvFile = CsvFile::createFromArray([
    ['id' => '1', 'name' => 'Nina'],
    ['id' => '2', 'name' => 'Angela'],
]);

$csvFile->add(['id' => '3', 'name' => 'John']);

// You can save your modified CSV file this way:
$csvFile->saveAs('names.csv');