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 и записывает её в файловый указатель
Вернуться к: Файловая система