Руководство по 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