FGETCSV(3) 1 FGETCSV(3)
fgetcsv - Gets line from file pointer and parse for CSV fields
SYNOPSIS
array fgetcsv (resource $handle, [int $length], [string $delimiter = ","], [string $enclosure = '"'], [string $escape = "
DESCRIPTION
Similar to fgets(3) except that fgetcsv(3) parses the line it reads for fields in CSV format and returns an array containing the fields
read.
PARAMETERS
o $handle
- A valid file pointer to a file successfully opened by fopen(3), popen(3), or fsockopen(3).
o $length
- Must be greater than the longest line (in characters) to be found in the CSV file (allowing for trailing line-end characters).
It became optional in PHP 5. Omitting this parameter (or setting it to 0 in PHP 5.1.0 and later) the maximum line length is not
limited, which is slightly slower.
o $delimiter
- The optional $delimiter parameter sets the field delimiter (one character only).
o $enclosure
- The optional $enclosure parameter sets the field enclosure character (one character only).
o $escape
- The optional $escape parameter sets the escape character (one character only).
RETURN VALUES
Returns an indexed array containing the fields read.
Note
A blank line in a CSV file will be returned as an array comprising a single null field, and will not be treated as an error.
Note
If PHP is not properly recognizing the line endings when reading files either on or created by a Macintosh computer, enabling the
auto_detect_line_endings run-time configuration option may help resolve the problem.
fgetcsv(3) returns NULL if an invalid $handle is supplied or FALSE on other errors, including end of file.
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 5.3.0 | |
| | |
| | The $escape parameter was added |
| | |
| 5.1.0 | |
| | |
| | The $length is now optional. Default is 0, mean- |
| | ing no length limit. |
| | |
| 4.3.5 | |
| | |
| | fgetcsv(3) is now binary safe |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
Read and print the entire contents of a CSV file
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>
";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />
";
}
}
fclose($handle);
}
?>
NOTES
Note
Locale setting is taken into account by this function. If $LANG is e.g. en_US.UTF-8, files in one-byte encoding are read wrong by
this function.
SEE ALSO
str_getcsv(3), explode(3), file(3), pack(3), fputcsv(3).
PHP Documentation Group FGETCSV(3)