phpexperts/csv-speaker

一个快速简单的包,可以轻松地从字符串和数组中读取和写入CSV。

v1.4.0 2024-08-23 13:30 UTC

This package is auto-updated.

Last update: 2024-09-23 13:42:10 UTC


README

TravisCI Maintainability Test Coverage

CSVSpeaker是PHP Experts, Inc.的一个项目,旨在轻松地将CSV转换为数组,反之亦然。

该库的主要目标是使从CSV字符串获取数组变得极其简单,反之亦然。

特别说明:该项目已更新以支持废弃fgetcsvfputcsv$enclosure参数。

有关详细信息,请参阅CSV和PHP 8.4+

安装

通过Composer

composer require phpexperts/csv-speaker

使用方法

读取

实例化/加载

    // The CSVReader can be instantiated from a file via just the file's filename:
    $csvReader = CSVReader::fromFile('/tmp/my.csv');

    // or via a SplFileObject:
    $csvReader = CSVReader::fromFile(new SplFileObject('/tmp/my.csv'));

    // More simply, you can instantiate from any CSV string.
    $csvReader = CSVReader::fromString('a,b,c,d');

转换为数组

    $output = $csvReader->toArray();
    /* [
        ['a', 'b', 'c', 'd']
    ] */

默认情况下,第一行成为数组键

    $csv = <<<CSV
    "First Name","Last Name",Age
    "John","Galt",37
    CSV;

    $output = CSVReader::fromString($csv)->toArray();
    /* [
        ['First Name' => 'John', 'Last Name' => 'Galt', 'Age' => 37]
    ] */

您也可以关闭标题

    $csv = <<<CSV
    "First Name","Last Name",Age
    "John","Galt",37
    CSV;

    $output = CSVReader::fromString($csv, false)->toArray();
    /* [
        ['First Name', 'Last Name', 'Age'],
        ['John',       'Galt',      '37']
    ] */

写入

数值数组

    $input = [
        ['a', 'b', 'c'],
        ['d', 'e', 'f']
    ];
    $csvWriter = new CSVWriter();
    $csvWriter->addRow($input[0]);
    $csvWriter->addRow($input[1]);
    $csv = $csvWriter->getCSV();

    /* csv:
        a,b,c
        d,e,f
    */

键数组(哈希表)

    $input = [
        ['Name' => 'John Galt', 'Age' => 37],
        ['Name' => 'Mary Jane', 'Age' => 27],
    ];
    $csvWriter = new CSVWriter();
    $csvWriter->addRow($input[0]);
    $csvWriter->addRow($input[1]);
    $csv = $csvWriter->getCSV();

    /* csv:
        Name,Age
        "John Galt",37
        "Mary Jane",27
    */

用例

PHPExperts\CSVSpeaker\CSVReader
✔ 将CSV字符串转换为数组
✔ 将CSV文件输出为数组
✔ 默认情况下使用第一行作为数组键
✔ 可以通过文件名加载
✔ 当给定的文件类型无效时抛出异常
✔ 如果输入不是正确的CSV,则返回空数组

PHPExperts\CSVSpeaker\CSVWriter
✔ 将简单数组转换为CSV
✔ 可以将行追加到现有CSV中
✔ 将键设置为标题行
✔ 可以添加具有相同标题的多行
✔ 将优雅地忽略空数组

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

测试

phpunit

贡献者

Theodore R. Smith theodore@phpexperts.pro
GPG指纹:4BF8 2613 1C34 87AC D28F 2AD8 EB24 A91D D612 5690
首席执行官:PHP Experts, Inc.

许可证

MIT许可证。有关更多信息,请参阅许可证文件