fgetcsv
Читает строку файла CSV и разбирает её на поля.
Синтаксис
fgetcsv(resource $stream, ?int $length = null, string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|falseПараметры
| Параметр | Тип | Описание |
|---|---|---|
| $stream | resource | Указатель на открытый файл. |
| $length | ?int | Необязательный. Наибольшая длина строки. |
| $separator | string | Необязательный. Разделитель полей. |
| $enclosure | string | Необязательный. Символ кавычек. |
| $escape | string | Символ экранирования; передавайте пустую строку. |
Возвращаемое значение
array|falseМассив полей или `false` в конце файла.
Примеры
Чтение таблицы из CSV:
<?php
$file = sys_get_temp_dir() . '/ref-read.csv';
file_put_contents($file, "name,price\nTea,250\n\"Coffee, black\",400\n");
$handle = fopen($file, 'r');
$header = fgetcsv($handle, null, ',', '"', '');
while (($row = fgetcsv($handle, null, ',', '"', '')) !== false) {
echo $row[0], ' = ', $row[1], "\n";
}
fclose($handle);Результат:
Tea = 250
Coffee, black = 400Примечания
Функция правильно разбирает поля в кавычках с запятыми внутри — explode(',', $line) на них ломается. Excel в русской версии сохраняет CSV с разделителем «точка с запятой».
См. также
Вопросы и ответы по теме
В учебнике
- Чтение и запись файлов — Работа с файлами в PHP — запись, чтение, дозапись, чтение по строкам, проверка существования и удаление.