php8.5
Home/ Manual/ spl / splfileobject/ SplFileObject::fgetcsv

SplFileObject::fgetcsv

PHP function Edit on GitHub ✎

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Gets line from file and parse as CSV fields

Description

SplFileObject::fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false

Gets a line from the file which is in CSV format and returns an array containing the fields read.

Parameters

separator

The field delimiter (one single-byte character only). By default , or the value set by a prior call to SplFileObject::setCsvControl.

enclosure

The field enclosure character (one single-byte character only). By default " or the value set by a prior call to SplFileObject::setCsvControl.

escape

The escape character (at most one single-byte character). By default \ or the value set by a prior call to SplFileObject::setCsvControl. An empty string ("") disables the proprietary escape mechanism.

Warning

As of PHP 8.4.0, depending on the default value of escape is deprecated. It needs to be provided explicitly either positionally or by the use of Named Arguments, or by a call to SplFileObject::setCsvControl.

Escape-parameter

Return Values

Returns an indexed array containing the fields read, or false on error.

Note

A blank line in a CSV file will be returned as an array comprising a single null field unless using SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, in which case empty lines are skipped.

Changelog

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

Examples

SplFileObject::fgetcsv example

php
<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
    var_dump($file->fgetcsv());
}
?>

SplFileObject::READ_CSV example

php
<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
    list($animal, $class, $legs) = $row;
    printf("A %s is a %s with %d legs\n", $animal, $class, $legs);
}
?>

Contents of animals.csv

txt
crocodile,reptile,4
dolphin,mammal,0
duck,bird,2
koala,mammal,4
salmon,fish,0

The above example will output something similar to:

output
A crocodile is a reptile with 4 legs
A dolphin is a mammal with 0 legs
A duck is a bird with 2 legs
A koala is a mammal with 4 legs
A salmon is a fish with 0 legs

See Also

  • SplFileObject::fputcsv
  • SplFileObject::setCsvControl
  • SplFileObject::getCsvControl
  • SplFileObject::setFlags
  • SplFileObject::READ_CSV
  • SplFileObject::current
  • fputcsv()
  • fgetcsv()
  • str_getcsv()

Source: reference/spl/splfileobject/fgetcsv.xml · from the official PHP manual (php/doc-en)