Zend Framework 2 Module for generating CSV output from an array.
This module provides both a Model and View Helper with which you can use to output
the csv data. When using the view helper, the output will automatically be passed
throught the escapeHtml view helper and all new lines will be converted to <br>
.
- Install the CaoCsvOutput ZF2 module
by cloning it into
./vendor/
. - Clone this project into your
./vendor/
directory.
-
Add this project in your composer.json:
"require": { "chrisoconnell/cao-csv-output": "dev-master" }
-
Now tell composer to download CaoCsvOutput by running the command:
$ php composer.phar update
-
Enabling it in your
application.config.php
file.<?php return array( 'modules' => array( // ... 'CaoCsvOutput', ), // ... );
You can either create an instance of CaoCsvOutput\Model\Csv
or use the view helper
csvOutput
.
-
Define the data as an array.
-
Create a new instance of
CaoCsvOutput\Model\Csv
using$data
as the input. -
Output the result using the
render
method.$data = array( array('a', 1, 'a + b'), array('b', '"', ';'), ); $csv = new CaoCsvOutput\Model\Csv($data); $output = $csv->render();
-
Which will set
$output
to bea;1;"a + b" b;"""";";"
-
Define the data like before.
-
From within your view script (.phtml file) simply call the view helper.
echo $this->csvOutput($data);
You can easily change the characters used for the CSV output by setting the attributes parameters when calling either the View Helper or the Model class.
- Data
- (array) Input array which gets converted to CSV output
- Delimiter
- (string) Character separating the fields of the CSV output. Default is
;
- Enclosure
- (string) Character that surounds the field text. Default is
"
- Enclose All
- (bool) If every field should be enclosed by the Enclosure string or not.
Defalut isfalse
. By default, only fields which contain a space, the delimiter, or the enclosure will be enclosed by the enclosure character.
echo $this->csvOutput($data, ',', "'", true);
If using the input from above, the output would be
'a','1','a + b'
'b','"',';'