fgetcsv
(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().