‪TYPO3CMS  10.4
TYPO3\CMS\Core\Utility\CsvUtility Class Reference

Static Public Member Functions

static array csvToArray ($input, $fieldDelimiter=',', $fieldEnclosure='"', $maximumColumns = 0)
 
static string csvValues (array $row, string $delim=',', string $quote='"', int $type = self::TYPE_REMOVE_CONTROLS)
 

Public Attributes

const TYPE_PASSTHROUGH = 0
 
const TYPE_REMOVE_CONTROLS = 1
 
const TYPE_PREFIX_CONTROLS = 2
 

Static Protected Member Functions

static bool int float string null prefixControlLiterals ($cellValue)
 
static bool int float string null removeControlLiterals ($cellValue)
 
static assertCellValueType ($cellValue)
 
static bool shallFilterValue ($cellValue)
 

Detailed Description

Class with helper functions for CSV handling

Definition at line 23 of file CsvUtility.php.

Member Function Documentation

◆ assertCellValueType()

static TYPO3\CMS\Core\Utility\CsvUtility::assertCellValueType (   $cellValue)
staticprotected

Asserts scalar or null types for given cell value.

Parameters
mixed$cellValue

Definition at line 156 of file CsvUtility.php.

◆ csvToArray()

static array TYPO3\CMS\Core\Utility\CsvUtility::csvToArray (   $input,
  $fieldDelimiter = ',',
  $fieldEnclosure = '"',
  $maximumColumns = 0 
)
static

Convert a string, formatted as CSV, into a multidimensional array

This cannot be done by str_getcsv, since it's impossible to handle enclosed cells with a line feed in it

Parameters
string$input‪The CSV input
string$fieldDelimiter‪The field delimiter
string$fieldEnclosure‪The field enclosure
int$maximumColumns‪The maximum amount of columns
Returns
‪array

Definition at line 52 of file CsvUtility.php.

Referenced by TYPO3\CMS\Core\Tests\Unit\Utility\CsvUtilityTest\csvToArraySplitsAsExpected(), and TYPO3\CMS\Frontend\DataProcessing\CommaSeparatedValueProcessor\process().

◆ csvValues()

static string TYPO3\CMS\Core\Utility\CsvUtility::csvValues ( array  $row,
string  $delim = ',',
string  $quote = '"',
int  $type = self::TYPE_REMOVE_CONTROLS 
)
static

Takes a row and returns a CSV string of the values with $delim (default is ,) and $quote (default is ") as separator chars.

Parameters
string[]$row‪Input array of values
string$delim‪Delimited, default is comma
string$quote‪Quote-character to wrap around the values.
int$type‪Output behaviour concerning potentially harmful control literals
Returns
‪string A single line of CSV

Definition at line 100 of file CsvUtility.php.

References TYPO3\CMS\Core\IO\CsvStreamFilter\applyStreamFilter().

Referenced by TYPO3\CMS\Core\Database\QueryView\csvValues(), TYPO3\CMS\Core\Tests\Unit\Utility\CsvUtilityTest\csvValuesReturnsExpectedResult(), and TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList\setCsvRow().

◆ prefixControlLiterals()

static bool int float string null TYPO3\CMS\Core\Utility\CsvUtility::prefixControlLiterals (   $cellValue)
staticprotected

Prefixes control literals at the beginning of a cell value with a single quote (e.g. =+value --> ‘’=+value`)

Parameters
mixed$cellValue
Returns
‪bool|int|float|string|null

Definition at line 126 of file CsvUtility.php.

◆ removeControlLiterals()

static bool int float string null TYPO3\CMS\Core\Utility\CsvUtility::removeControlLiterals (   $cellValue)
staticprotected

Removes control literals from the beginning of a cell value (e.g. =+value --> value)

Parameters
mixed$cellValue
Returns
‪bool|int|float|string|null

Definition at line 142 of file CsvUtility.php.

◆ shallFilterValue()

static bool TYPO3\CMS\Core\Utility\CsvUtility::shallFilterValue (   $cellValue)
staticprotected

Whether cell value shall be filtered, applies to everything that is not or cannot be represented as boolean, integer or float.

Parameters
mixed$cellValue
Returns
‪bool

Definition at line 175 of file CsvUtility.php.

Member Data Documentation

◆ TYPE_PASSTHROUGH

const TYPO3\CMS\Core\Utility\CsvUtility::TYPE_PASSTHROUGH = 0

whether to passthrough data as is, without any modification

Definition at line 28 of file CsvUtility.php.

Referenced by TYPO3\CMS\Core\Tests\Unit\Utility\CsvUtilityTest\csvValuesDataProvider().

◆ TYPE_PREFIX_CONTROLS

const TYPO3\CMS\Core\Utility\CsvUtility::TYPE_PREFIX_CONTROLS = 2

whether to prefix control characters like =, +, ... to become ‘’=,'+`, ...

Definition at line 39 of file CsvUtility.php.

Referenced by TYPO3\CMS\Core\Tests\Unit\Utility\CsvUtilityTest\csvValuesDataProvider().

◆ TYPE_REMOVE_CONTROLS

const TYPO3\CMS\Core\Utility\CsvUtility::TYPE_REMOVE_CONTROLS = 1

whether to remove control characters like =, +, ...

Definition at line 33 of file CsvUtility.php.

Referenced by TYPO3\CMS\Core\Tests\Unit\Utility\CsvUtilityTest\csvValuesDataProvider().