fgetcsv - Читает строку из файла и производит разбор данных CSV
Вернуться к: Файловая система
fgetcsv
(PHP 4, PHP 5, PHP 7)
fgetcsv — Читает строку из файла и производит разбор данных CSV
Описание
$handle
[, int $length
= 0
[, string $delimiter
= ","
[, string $enclosure
= '"'
[, string $escape
= "\"
]]]] )Данная функция похожа на функцию fgets(), с той разницей, что она производит анализ строки на наличие записей в формате CSV и возвращает найденные поля в качестве массива.
Список параметров
-
handle
-
Корректный файловый указатель на файл, успешно открытый при помощи fopen(), popen() или fsockopen().
-
length
-
Должен быть больше самой длинной строки (в символах), найденной в CSV-файле (включая завершающий символ конца строки). Данный параметр стал необязательным в PHP 5. Если этот аргумент не указан (или равен 0 в версиях PHP 5.1.0 и выше), максимальная длина строки не ограничена, но функция работает немного медленнее.
-
delimiter
-
Необязательный параметр
delimiter
устанавливает разделитель поля (только один символ). -
enclosure
-
Необязательный параметр
enclosure
устанавливает символ ограничителя поля (только один символ). -
escape
-
Необязательный параметр
escape
устанавливает экранирующий символ (только один символ).
Возвращаемые значения
Возвращает индексированный массив с прочтенными полями.
Замечание:
Пустая строка CSV-файла будет возвращена в качестве массива, содержащего единственный элемент null, ошибки в данном случае не возникнет.
Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.
fgetcsv() возвращает NULL
, если передаётся неверный
параметр handle
или FALSE
при других ошибках,
в том числе и по достижению конца файла.
Список изменений
Версия | Описание |
---|---|
5.3.0 |
Добавлен параметр escape
|
5.1.0 |
Параметр length стал необязательным.
По умолчанию равен 0, что означает отсутствие ограничения длины.
|
4.3.5 | fgetcsv() теперь безопасна для обработки бинарных данных |
Примеры
Пример #1 Чтение и вывод на экран содержимого CSV-файла
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
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);
}
?>
Примечания
Замечание:
Эта функция принимает во внимание настройки локали. К примеру, если LANG установлена в en_US.UTF-8, то файлы в однобайтовой кодировке будут неправильно прочитаны этой функцией.
Смотрите также
- str_getcsv() - Выполняет разбор CSV-строки в массив
- explode() - Разбивает строку с помощью разделителя
- file() - Читает содержимое файла и помещает его в массив
- pack() - Упаковывает данные в бинарную строку
- fputcsv() - Форматирует строку в виде CSV и записывает её в файловый указатель
Вернуться к: Файловая система