SplFileObject::setCsvControl

Set the delimiter, enclosure and escape character for CSV

Description

public void SplFileObject::setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\")

Sets the delimiter, enclosure and escape character for parsing CSV fields.

Parameters

separator

The field delimiter (one single-byte character only).

enclosure

The field enclosure character (one single-byte character only).

escape

The field escape character (at most one single-byte character). An empty string ("") disables the proprietary escape mechanism.

Warning

When escape is set to anything other than an empty string ("") it can result in CSV that is not compliant with » RFC 4180 or unable to survive a roundtrip through the PHP CSV functions. The default for escape is "\\" so it is recommended to set it to the empty string explicitly. The default value will change in a future version of PHP, no earlier than PHP 9.0.

Return Values

No value is returned.

Changelog

Version Description
7.4.0 The escape parameter now also accepts an empty string to disable the proprietary escape mechanism.

Examples

Example #1 SplFileObject::setCsvControl example

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach ($file as $row) {
    list ($fruit, $quantity) = $row;
    // Do something with values
}
?>

Contents of data.csv

<?php
apples|20
bananas|14
cherries|87
?>

See Also

  • SplFileObject::getCsvControl
  • SplFileObject::fgetcsv