A simple PHP library to parse and generate CSV files.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
Simon Vieille 0f413d06b9
tests for php7
il y a 1 mois
src/Deblan/Csv add stream parser il y a 1 mois
tests tests for php7 il y a 1 mois
.gitignore Insight analyse fixes il y a 3 ans
.php-censor.yml CI il y a 1 an
LICENSE Insight analyse fixes il y a 3 ans
README.md add stream parser il y a 1 mois
composer.json composer il y a 4 ans
phpunit.xml add stream parser il y a 1 mois

README.md

CSV parser/generator

A simple PHP library to:

  • parse a CSV file
  • parse a stream as CSV datas
  • generate CSV files.

PHP >= 7.1 required.

Composer installation

$ composer require deblan/csv "~3"

Or in your composer.json:

{
    "require": {
        "deblan/csv": "~3"
    }
}

Usages

Generator

use Deblan\Csv\Csv;

$csv = new Csv();

// Defines the delimiter (default is ;)
$csv->setDelimiter(";");

// Defines the enclosure (default is ")
$csv->setEnclosure('"');

// Defines the end of line (default is \n)
$csv->setEndOfLine("\n");

// Defines the charset (default is UTF-8)
$csv->setCharset("UTF-8");

// Add a new line at the end
$csv->addData(['Foo', '$1000'));

// Add a new line at the end
$csv->appendData(['Bar', '$600']);

// Add a new line at the beginning
$csv->prependData(['Boo', '$3000']);

// Defines all the datas
$csv->setDatas([[...], [...]]);

// Defines the header
$csv->setHeaders(['Product', 'Price']);

// Rendering
$result = $csv->render();

// Rendering to a file
$result = $csv->render('products.csv');

// Appending to a file
$result = $csv->render('products.csv', FILE_APPEND);

Parse a file

use Deblan\Csv\CsvParser;

$csv = new CsvParser();

// Defines the delimiter (default is ;)
$csv->setDelimiter(";");

// Defines the enclosure (default is ")
$csv->setEnclosure('"');

// Defines the end of line (default is \n)
$csv->setEndOfLine("\n");

// Headers?
$csv->setHasHeaders(true);

// Parse a file
$csv->parseFile('products.csv');

// Parse a string
$csv->parseString($myString);

// Headers and datas
$headers = $csv->getHeaders();
$products = $csv->getDatas();

Parse a stram

use Deblan\Csv\CsvStreamParser;

// CsvStreamParser is a CsvParser
$csv = new CsvStreamParser();

// Parse a stream
$csv->parseStream(fopen('products.csv', 'r'));

while ($data = $csv->getData()) {
	// ...
}