Руководство по PHP
Пред. |  | След.

# fgetcsv

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

fgetcsv -- Читает строку из файла и производит разбор данных CSV

## Описание

array fgetcsv ( resource handle [, int length [, string delimiter [, string enclosure]]] )

`handle`

  Корректный файловый указатель на файл, успешно открытый при помощи fopen(), popen(), или fsockopen().

`length` (Необязательный)

  Должен быть больше самой длинной строки (в символах), найденной в CSV-файле (включая завершающий символ конца строки). Он стал необязательным в PHP 5. Если этот аргумент не указан (или равен 0 в версиях PHP 5.0.4 и выше), максимальная длинна строки не ограничена, но функция работает немного медленнее.

`delimiter` (Необязательный)

  Устанавливает разделитель поля (только один символ). По умолчанию это запятая.

`enclosure` (Необязательный)

  Устанавливает символ ограничителя поля (только один символ). По умолчанию это двойная кавычка. Добавлен в PHP 4.3.0.

Данная функция похожа на функцию fgets(), с той разницей, что она производит анализ строки на наличие записей в формате CSV и возвращает найденные поля в качестве массива.

Функция fgetcsv() возвращает `FALSE` в случае ошибки, а также по достижению конца файла.

> Замечание: Пустая строка CSV-файла будет возвращена в качестве массива, содержащего единственный элемент null, ошибки в данном случае не возникнет.

Пример 1. Чтение и вывод на экран содержания CSV-файла

`<?php $row = 1; $handle = fopen("test.csv", "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); ?>`

fgetcsv() стала правильно обрабатывать двоичные данные начиная с версии PHP 4.3.5

> Замечание: Эта функция принимает во внимание настройки локали. К примеру, если `LANG` установлен в `en_US.UTF-8`, то файлы в однобайтовой кодировке будут неправильно прочитаны этой функцией.

> Замечание: Если у вас возникают проблемы с распознаванием `PHP` окончания строк при чтении файлов на Macintosh-совместимом компьютере или при чтении файлов, созданных на Macintosh-совместимом компьютере, необходимо включить опцию auto_detect_line_endings.

См.также описание функций explode(), file(), pack() и fputcsv().

Пред. | Начало | След.
fgetc | Уровень выше | fgets