PHP client to parse CSV data from a path, file, stream, resource or string into indexed or associative arrays.
PHP
Latest commit 0fc71b1 Feb 10, 2017 @jabranr committed on GitHub Merge pull request #18 from jabranr/bugfix-trim-spaces
Bugfix trim spaces
Permalink
Failed to load latest commit information.
src
test
.editorconfig
.gitignore
.travis.yml
README.md
composer.json
phpunit.xml

README.md

CSV Parser (PHP) Build Status Latest Stable Version Total Downloads

PHP client to parse CSV data from a path, file, stream, resource or string into indexed or associative arrays.

Namespaces were added in v2.0.2 so make sure you update your code before migrating from an older version.

Install

Install using composer

#composer.json

{
  "require": {
    "jabranr/csv-parser": "~2.1.*"
  }
}

Run following to install

$ comsposer install

Use

Initiate a new instance

$csv = new Jabran\CSV_Parser();

API

Get data from a string

/* @param: string $str */
$csv->fromString($str);

Get data from a stream (Will be deprecated in future)

/* @param: resource $stream (f.e. php://input) */
$csv->fromStream($stream);

Get data from a resource (Since v2.0.2)

/* @param: resource $resource (f.e. resource created using fopen()) */
$csv->fromResource($resource);

Get data from a file path (Will be deprecated in future)

/* @param: string $file */
$csv->fromFile($file);

Get data from a path/URL (Since v2.0.2)

/* @param: string $path */
$csv->fromPath($path);

Parse data for output

/**
 * Set $headers true/false to include top/first row
 * and output an associative array
 *
 * @param: boolean $headers (Default: true)
 * @return: array
 */
$csv->parse($headers);

More useful methods (Since v2.0.2)

/**
 * Set columns
 * @param array $columns
 * @return Jabran\CSV_Parser
 */
$csv->setColumns($columns);

/**
 * Set rows
 * @param array $rows
 * @return Jabran\CSV_Parser
 */
$csv->setRows($rows);

/**
 * Set headers
 * @param array $headers
 * @return Jabran\CSV_Parser
 */
$csv->setHeaders($headers);

/**
 * Get columns
 * @return array
 */
$csv->getColumns();

/**
 * Get rows
 * @return array
 */
$csv->getRows();

/**
 * Get headers
 * @return array
 */
$csv->getHeaders();

Example

Example input string

require 'path/to/vendor/autoload.php';

$csv = new Jabran\CSV_Parser;

$str = 'id,first_name,last_name;1,Jabran,Rafique';

$csv->fromString($str);

// Output with headers:
$csv->parse();

Array(
  [id] => 1,
  [first_name] => 'Jabran',
  [last_name] => 'Rafique'
)

// Output without headers:
$csv->parse(false);

Array(
  [0] => array(
    [0] => 'id',
    [1] => 'first_name',
    [2] => 'last_name'
 ),
  [1] => array(
    [0] => 1,
    [1] => 'Jabran',
    [2] => 'Rafique'
 )
)

License

© 2015—2017 MIT License - Jabran Rafique

Analytics